Skip to content

Instantly share code, notes, and snippets.

View Gwash3189's full-sized avatar

Adam Beck Gwash3189

View GitHub Profile
@Gwash3189
Gwash3189 / functional.js
Created June 4, 2015 00:52
Functional codekata
function add(a,b){
if(arguments.length > 1){
return a + b;
} else {
return function(b){
return add(a, b);
};
}
}
@Gwash3189
Gwash3189 / username.html
Created May 29, 2015 11:55
html for cqrs demo
<div data-show-after-loaded="true">
<h1 id="userNameBinding"></h1>
<form id="userInformationForm">
<input name="userName" type="text"/>
<button type="submit">Update</button>
</form>
</div>
<div data-show-before-loaded="true">
<i class="loading-icon"></i>
</div>
@Gwash3189
Gwash3189 / Bus.js
Last active August 29, 2015 14:22
Basic event bus
var Bus = {
__nameSpaceMap: {},
on: function(nameSpace, func){
Bus.__nameSpaceMap[namespace] = Bus.__nameSpaceMap[namespace] || []; //new namespace if it doesn't exist
Bus.__nameSpaceMap[namespace].push(func); // add the func
return Bus;
},
trigger: function(nameSpace, data){
var triggeredAt = new Date(); //when they triggered the event / command
Bus.__nameSpaceMap[namespace].forEach(function(func){
@Gwash3189
Gwash3189 / demo.js
Last active August 29, 2015 14:22
CQRS in JS
//...
UserInformationCommandModel = {
el: "#userInformationForm",
$el: undefined,
getDataFromForm: function() {
return {
userName: UserInformationCommandModel.$el.find("input[name='userName']").val()
};
},
@Gwash3189
Gwash3189 / prepare-android-apk.sh
Created May 26, 2015 04:44
build and sign production cordova (version 5.0.0) android apk
green='\e[0;32m'
NC='\e[0m'
rm "signed.apk"
rm "android-release-unsigned.apk"
echo ""
echo -e "${green}Making production build${NC}"
echo ""
grunt dev:prod && cordova build android --release
echo ""
@Gwash3189
Gwash3189 / Mixinanator.js
Created May 22, 2015 06:34
Mixins with composanator
Mixanator = {
mix: function() {
var func = window.compose.left.apply(null, arguments);
func.__composed = func;
func.extend = Mixanator.extend;
return func;
},
extend: function() {
var args = argumentsToArray(arguments);
args = args.map(getComposedFuncs).filter(clear).concat(args);
class User {
constructor(name, time) {
this.name = name;
this.time = time;
}
setFlair(prevUser = false){
if(!prevUser){
this.flair = (60-this.time);
} else {
class Game {
constructor(ScoreBoard){
this.ScoreBoard = ScoreBoard;
}
start() {
let limit = 3;
while(this.ScoreBoard.getHighestScore() !== limit && this.scoreCards.areAllQuestionsAsked()){
this.ScoreBoard.askQuestion();
this.ScoreBoard.sortByScore();
}
@Gwash3189
Gwash3189 / devision.js
Last active August 29, 2015 14:21
standard devisiation
var Diviation = {
calc(arr = []){
return Diviation.deviate(Diviation.variance(arr, Diviation.mean(arr)));
},
mean(arr=[]){
return arr.reduce((x,y) => x + y, 0) / arr.length;
},
variance(arr = [], mean = 0) {
return arr.map(x => (Math.pow((x - mean), 2)))
.reduce((x,y) => x + y, 0) / arr.length;
@Gwash3189
Gwash3189 / Rovar.js
Created May 13, 2015 12:27
Rövarspråket
var Rovar = {
joiner: "o",
letters: "bcdfghjklmnpqrstvwxyz",
encode(str = "") {
if(str !== ""){
let newString = str.split("");
return newString.map(x => Rovar.letters.indexOf((x + "").toLowerCase()) > -1 ? x+Rovar.joiner+x.toLowerCase() : x ).join("");
}
return "";
},