For Homebrew v2.6.x and below:
brew cask install ngrok
For Homebrew v2.7.x and above:
get_latest_release() { | |
curl --silent "https://api.github.com/repos/$1/releases/latest" | # Get latest release from GitHub api | |
grep '"tag_name":' | # Get tag line | |
sed -E 's/.*"([^"]+)".*/\1/' # Pluck JSON value | |
} | |
# Usage | |
# $ get_latest_release "creationix/nvm" | |
# v0.31.4 |
#!/usr/bin/env bash | |
set -e | |
# allow being run from somewhere other than the git rootdir | |
gitroot=$(git rev-parse --show-cdup) | |
# default gitroot to . if we're already at the rootdir | |
gitroot=${gitroot:-.}; | |
nm_bin=$gitroot/node_modules/.bin |
/** | |
* Remove all specified keys from an object, no matter how deep they are. | |
* The removal is done in place, so run it on a copy if you don't want to modify the original object. | |
* This function has no limit so circular objects will probably crash the browser | |
* | |
* @param obj The object from where you want to remove the keys | |
* @param keys An array of property names (strings) to remove | |
*/ | |
function removeKeys(obj, keys){ | |
var index; |
/** | |
* Infix to postfix implementation | |
* | |
* Dinesh | |
* | |
* Input: 4+8*6-5/3-2*2+2 ==> 486*+53/-22*-2+ | |
* | |
* Algorithm: | |
* - Whenever an integer/character comes from expression we append to postfix String | |
* - Whenever a operator comes in we check the precedence of the incoming operator with the |
(by @andrestaltz)
If you prefer to watch video tutorials with live-coding, then check out this series I recorded with the same contents as in this article: Egghead.io - Introduction to Reactive Programming.
{ | |
"scripts": { | |
"eslint": "LIST=`git diff-index --name-only HEAD | grep .*\\.js | grep -v json`; if [ \"$LIST\" ]; then eslint $LIST; fi" | |
}, | |
"devDependencies": { | |
"pre-commit": "0.0.7", | |
"eslint": "~0.5.1" | |
}, | |
"pre-commit": [ | |
"eslint" |