Skip to content

Instantly share code, notes, and snippets.

View samwgoldman's full-sized avatar

Sam Goldman samwgoldman

View GitHub Profile
@samwgoldman
samwgoldman / request.json
Last active August 29, 2015 13:57
Example of nested errors in JSON
{
"object": {
"groups": [
{
"options": [
{
},
{
}
],
@samwgoldman
samwgoldman / Maybe.h
Created March 12, 2014 22:42
Maybe monad-alike in Objective-C using parts of ReactiveCocoa and libextobjc concrete protocols
#import <Foundation/Foundation.h>
#import <libextobjc/EXTConcreteProtocol.h>
@protocol Maybe <NSObject>
- (id<Maybe>)map:(id (^)(id value))block;
- (id<Maybe>)flattenMap:(id<Maybe> (^)(id value))block;
- (id<Maybe>)orElse:(id)defaultValue;
- (id)getOrElse:(id)defaultValue;
<!DOCTYPE html>
<html>
<head>
<script src="http://code.jquery.com/jquery-2.0.2.js"></script>
<script src="http://builds.emberjs.com/handlebars-1.0.0.js"></script>
<script src="http://builds.emberjs.com/ember-latest.js"></script>
</head>
<body>
<script type="text/x-handlebars" data-template-name="application">
{{view Ember.Select content=options value=computed}}
class Foo
def self.bar
end
def bar
end
end
set_trace_func proc { |event, file, line, id, binding, classname|
if event == "call"
require "active_support/all"
now = Date.current
# => Thu, 05 Sep 2013
now - 2.months - 5.days + 2.months + 5.days == now
# => false
now - 2.months - 5.days + 5.days + 2.months == now
# => true
require "active_record" # 4.0.0.rc2
require "minitest/autorun"
class Migrate < ActiveRecord::Migration
self.verbose = false
def up
create_table(:profiles)
create_table(:networks)
create_table(:memberships) do |t|
require "active_record"
require "rspec/autorun"
class Migrate < ActiveRecord::Migration
self.verbose = false
def up
create_table(:projects)
create_table(:tasks) do |t|
t.references :project, null: false
@samwgoldman
samwgoldman / coffee-script-redux.js
Created November 3, 2012 03:29
Browser-compatible single-file CoffeeScriptRedux
This file has been truncated, but you can view the full file.
(function(){var require = function (file, cwd) {
var resolved = require.resolve(file, cwd || '/');
var mod = require.modules[resolved];
if (!mod) throw new Error(
'Failed to resolve module ' + file + ', tried ' + resolved
);
var cached = require.cache[resolved];
var res = cached? cached.exports : mod();
return res;
};
@samwgoldman
samwgoldman / gist:3904149
Created October 17, 2012 07:08
How to use VCR even if your tests depend on Date.today/Time.now, +/- 100 days/seconds.
VCR.configure do |config|
config.cassette_library_dir = "spec/cassettes"
config.hook_into :faraday
# If a test uses a value that depends on the current time, then the recording
# become stale as time marches on.
# This setting will replace specific "absolute time" values with time-relative
# keywords when the recording is first made.
# On subsequent replayes, the time-relative keywords are substituted with
# the appropriate value, so the value is relative tot he current time.
@samwgoldman
samwgoldman / implementation.js.coffee
Created October 16, 2012 23:08
Async testing pattern. Better way?
class App.Components.Select extends Backbone.View
template: HandlebarsTemplates.select
initialize: ->
@labelField = @options.labelField
@valueField = @options.valueField
@collection.bind("reset", => @render)
render: ->