Skip to content

Instantly share code, notes, and snippets.

View Chandler's full-sized avatar

Chandler Abraham Chandler

View GitHub Profile
@Chandler
Chandler / gist:6383800
Last active December 21, 2015 23:39
filter has many

isCurrentUserGame always returns false, I'm sure that players contains

{{#if game.isCurrentUserGame}}
  <span> You are in this game! </span>
{{else}}
App.Game = DS.Model.extend
 name: DS.attr 'string'
record = @get('model').createRecord(properties)
@get('store').get('defaultTransaction').commit()
record.on 'becameError', =>
@set 'errors', 'SERVER ERROR'
record.on 'becameInvalid', =>
@set 'errors', 'SERVER ERROR'
console:
POST http://localhost:9000/api/users 422 (status code 422)
@Chandler
Chandler / gist:6982029
Created October 14, 2013 20:54
pretty print json
node -e "console.log(JSON.stringify(JSON.parse(require('fs').readFileSync(process.argv[1])), null, 4));" ugly.json > pretty.json
@Chandler
Chandler / gist:7032316
Created October 17, 2013 21:15
slate config
# This is the default .slate file.
# If no ~/.slate file exists this is the file that will be used.
#config
config defaultToCurrentScreen true
config nudgePercentOf screenSize
config resizePercentOf screenSize
#resize
bind right:ctrl push right bar-resize:screenSizeX/2
@Chandler
Chandler / gist:7766963
Last active December 30, 2015 03:08
debug combine files
package com.chandler
import com.twitter.scalding._
import com.twitter.scalding.commons.source._
case class TestLzoSource(p : String) extends FixedPathSource(p) with LzoText
class WordCountJob(args : Args) extends Job(args) {
TestLzoSource(args("input"))
.flatMap('line -> 'word) { line : String => line.split("""\s+""") }
genderGuess: function (a) {
a = a.toLowerCase();
var b = a.charAt(a.length - 1),
c = a.charAt(a.length - 2) + b;
return "a" != b && "e" != b && "y" != b && "i" != b && "in" != c && "ah" != c && "en" != c && "an" != c && "yn" != c && "er" != c && "ux" != c || "steve" == a || 3 == a.length || "sean" == a || "steven" == a || "dimitri" == a || "ravi" == a || "kenny" == a || "naoki" == a || "ayman" == a || "sachin" == a || "edwin" == a || "justin" == a || "nitin" == a || "bryce" == a || "mike" == a || "gary" == a || "dave" == a || "jonathan" == a || "harry" == a || "male" == a ? "male" : "female"
}
@Chandler
Chandler / eitherBuilder.scala
Last active August 29, 2015 13:56
Either Builder
sealed trait NotSatisfied { def reason: String }
case class MissingOption(reason: String) extends NotSatisfied
case class IncorrectBoolean(reason: String) extends NotSatisfied
/**
* Convert Option[T] to Either.RightProjection[MissingOption, T]
* for use in a for comprehension
*
* @param opt the option to consider
data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAA6gAAALKCAYAAAA/CnzNAAAgAElEQVR4Xu3aW5Yct7EF0OZo5FlanqU9mr5XtL1kUiQLQAWQEYGtX2bisQ8yq06Xvnz+/38f/iNAgAABAgQIECBAgAABAg8LfFFQH07A9AQIECBAgAABAgQIECDwVUBBdRAIECBAgAABAgQIECBAIIWAgpoiBosgQIAAAQIECBAgQIAAAQXVGSBAgAABAgQIECBAgACBFAIKaooYLIIAAQIECBAgQIAAAQIEFFRngAABAgQIECBAgAABAgRSCCioKWKwCAIECBAgQIAAAQIECBBQUJ0BAgQIECBAgAABAgQIEEghoKCmiMEiCBAgQIAAAQIECBAgQEBBdQYIECBAgAABAgQIECBAIIWAgpoiBosgQIAAAQJ5Bb7868v04j5/+5y+xw0ECBAgQEBBdQYIECBAgACBXwooqA4IAQIECJwSUFBPSZuHAAECBAgUFVBQiwZn2QQIECgooKAWDM2SCRAgQIDASQEF9aS2uQgQIHC3gIJ6d/52T4AAAQIEXgooqC+JXECAAAECQQIKahCkYQgQIECAQFcBBbVrsvZFgACBfAIKar5MrIgAAQIECKQSUFBTxWExBAgQaC2goLaO1+YIECBAgMD7Agrq+4ZGIECAAIExAQV1zMlVBAgQIEDgWgEF9drobZwAAQLHBRTU4+QmJECAAAECtQQU1Fp5WS0BAgQqCyioldOzdgIECBAgcEBAQT2AbAoCBAgQ+CqgoDoIBAgQIECAwC8FFFQHhAABAgROCSiop6TNQ4AAAQIEigooqEWDs2wCBAgUFFBQC4ZmyQQIECBA4KSAgnpS21wECBC4W0BBvTt/uydAgAABAi8FFNSXRC4gQIAAgSABBTUI0jAECBAgQKCrgILaNVn7IkCAQD4BBTVfJlZEgAABAgRSCSioqeKwGAIECLQWUFBbx2tzBAgQIEDgfQEF9X1DIxAgQIDAmICCOu
class Api::StatsController < Api::ApiController
def self.timeseries(game_id)
data = []
game = Game.find(game_id)
day = game.registration_start.to_date
# loop in 1 day increments from registration_start
class Try
attr_accessor :error, :success
#shortcuts
def self.error(error)
self.new({error: error})
end
def self.success(success)
self.new({success: success})