Skip to content

Instantly share code, notes, and snippets.

View elycruz's full-sized avatar

Ely De La Cruz elycruz

View GitHub Profile
@elycruz
elycruz / versionNumReadStream.js
Created December 13, 2017 03:14
Outputs the version number of an npm package through a readstream.
const
util = require('util'),
stream = require('stream'),
Readable = stream.Readable,
packageJson = require('../package');
function VersionNumberReadStream (options) {
Readable.call(this, Object.assign({
encoding: 'utf8',
objectMode: false,
define(function () {
'use strict';
var typeofIsObject = function (value) { return typeof value === 'object'; },
hasOwnProperty = function (obj, key) { return Object.prototype.hasOwnProperty.call(obj, key) };
function deepEquals (obj1, obj2) {
return Object.keys(obj1).every(function (key) {
if (!hasOwnProperty(obj2, key)) {
/**
* Created by elydelacruz on 11/8/16.
* Simple function to extract delimited content from a string.
*/
'use strict';
/**
* Returns whether our content has opening and closing delimiters.
* @param content {String}
// Simple fibonacci series generator. Generates fibonacci series from 0 to `limit` number.
function fib (limit) {
var out = [],
a = 0,
b = 1;
while (a < limit) {
out.push(a);
if (b <= limit) {
out.push(b);
}
@elycruz
elycruz / numToHex.js
Last active November 14, 2017 02:02
Javascript number to hexadecimal string function.
/**
* 'Fast Remainder' method for number to hex.
* @see http://www.wikihow.com/Convert-from-Decimal-to-Hexadecimal (fast remainder method (method 2)).
*/
const hexMap = [
[0, 0], [1, 1], [2, 2], [3, 3], [4, 4], [5, 5],
[6, 6], [7, 7], [8, 8], [9, 9], [10, 'A'], [11, 'B'],
[12, 'C'], [13, 'D'], [14, 'E'], [15, 'F']
];
@elycruz
elycruz / Namespace.js
Created May 22, 2015 22:48
Php Styled Autoloader for NodeJs
/**
* Created by Ely on 5/22/2015.
*/
require('sjljs');
var path = require('path'),
fs = require('fs');
var Namespace = sjl.Extendable.extend(function Namespace (dir, allowedFileExts) {
@elycruz
elycruz / .jshintrc
Created May 15, 2015 19:06
Good starting point .jshintrc file.
{
"maxerr" : 50, // {int} Maximum error before stopping
// Enforcing
"bitwise" : true, // true: Prohibit bitwise operators (&, |, ^, etc.)
"camelcase" : false, // true: Identifiers must be in camelCase
"curly" : false, // true: Require {} for every new block or scope
"eqeqeq" : true, // true: Require triple equals (===) for comparison
"forin" : false, // true: Require filtering for..in loops with obj.hasOwnProperty()
"immed" : true, // true: Require immediate invocations to be wrapped in parens e.g. `(function () { } ());`
@elycruz
elycruz / .eslintrc
Last active September 18, 2016 16:42
.eslintrc as yaml file
# --------------------------------------------------------------------------------------------------------------------- #
# Conversion of http://eslint.org/docs/rules/ to an actual .eslintrc file:
# Copied: 04/01/2015
# Updated to yaml format: 05/15/2015
# Copied by: Ely De La Cruz <[email protected]>
# --------------------------------------------------------------------------------------------------------------------- #
# --------------------------------------------------------------------------------------------------------------------- #
# Environemnt Types:
# --------------------------------------------------------------------------------------------------------------------- #
@elycruz
elycruz / .eslintrc
Last active August 29, 2015 14:18
.eslintrc converted from http://eslint.org/docs/rules/ **Note** the file has no values (everything is set to null).
/**
Conversion of http://eslint.org/docs/rules/ to an actual .eslintrc file:
Copied: 04/01/2015
Copied by: Ely De La Cruz <[email protected]>
*/
/**
Rules:
Rules in ESLint are divided into several categories to help you better understand their value. Additionally, not all rules are enabled by default. Those that are not enabled by default are marked as being off.
**-------------------------------------------------------------------------------------------------------------------**/
@elycruz
elycruz / appendScriptTag.js
Last active August 29, 2015 14:18
Append a script tag (legacy way with optional use of jquery)
/**
* Creates and appends a script tag to the `document` at `insertLocation`. (This snippet is a good candidate for adding an
* interval or a timeout on the returned $.deffered|HTMLScriptElement)
* @param options hash of the following parameters:
* @param src {String|HTMLScriptElement} - Script source or script element. Required.
* @param doc {document} - `document` object. Optional. Default `document`.
* @param insertLocation {String} - Location at which to insert the script tag [head,body]. Optional. Default 'body'.
* @param onError {Function} - On error callback. Optional. If `$.getScript` is available these callbacks gets passed to `.fail()`.
* @param onSuccess {Function} - On success/completion callback. Optional.
* @param useGetScript {Boolean} - Whether to use `$.getScript` if it is available. Optional. Default `false`.