Skip to content

Instantly share code, notes, and snippets.

View jamiehodge's full-sized avatar

Jamie Hodge jamiehodge

  • Zendesk
  • Copenhagen, Denmark
View GitHub Profile
@jamiehodge
jamiehodge / gist:1327195
Created October 31, 2011 09:38
Warden and Sinatra example
require 'sinatra/base'
require 'rack/flash'
require 'warden'
require 'slim'
require 'sequel'
require 'sqlite3'
DB = Sequel.sqlite
DB.create_table :users do
primary_key :id
@jamiehodge
jamiehodge / webmachine.markdown
Last active May 7, 2020 22:21
Webmachine state machine and resource callbacks

Webmachine State Machine

General

  • Service available?
    • callback: service_available?
    • false: 503 Service Unavailable
  • Known method?
    • callback: known_methods
  • absent: 501 Not Implemented
@jamiehodge
jamiehodge / sequel_dot.rb
Created May 6, 2013 07:31
sequel DB diagrams
#! /usr/bin/env ruby
# Usage:
# ruby sequel_dot.rb [SEQUEL-DATABASE-URI] > output.dot
# Or pipe directly to Graphviz:
# ruby sequel_dot.rb [SEQUEL-DATABASE-URI] | dot -Tgif > output.gif
#
# Note adapted from Jeremy Evans' and Rohit Namjoshi's son's code at
# http://sequel.heroku.com/2010/05/29/fun-with-graphviz-and-associations/
#
@jamiehodge
jamiehodge / resource.rb
Last active November 28, 2017 23:23
Server Side Events, Sequel and Postgres LISTEN/NOTIFY
require 'sequel'
DB ||= Sequel.connect ENV['DATABASE_URL']
class Resource < Sequel::Model
include Sequel.inflections
def after_save
db.notify channel
end
@jamiehodge
jamiehodge / slides.md
Created December 3, 2012 09:40
Hypermedia APIs

!SLIDE

Hypermedia APIs

"Follow your nose"

— Roy T. Fielding

!SLIDE

"build scalable, flexible implementations that do not simply run on the Web, but that actually exist in the Web"

@jamiehodge
jamiehodge / flow-output
Created May 26, 2016 21:32
Flow check output without haste
node_modules/fbjs/lib/UnicodeBidi.js.flow:28
28: import type { BidiDirection } from 'UnicodeBidiDirection';
^^^^^^^^^^^^^^^^^^^^^^ UnicodeBidiDirection. Required module not found
node_modules/fbjs/lib/UnicodeBidiService.js.flow:51
51: import type { BidiDirection } from 'UnicodeBidiDirection';
^^^^^^^^^^^^^^^^^^^^^^ UnicodeBidiDirection. Required module not found
node_modules/fbjs/lib/equalsSet.js.flow:16
16: import type Set from 'Set';
[ignore]
.*/node_modules/fbjs/lib/Deferred
.*/node_modules/fbjs/lib/PromiseMap
.*/node_modules/.*/test/
[include]
[libs]
[options]
require 'formula'
class Nginx < Formula
homepage 'http://nginx.org/'
url 'http://nginx.org/download/nginx-1.4.4.tar.gz'
sha1 '304d5991ccde398af2002c0da980ae240cea9356'
devel do
url 'http://nginx.org/download/nginx-1.5.7.tar.gz'
sha1 '4dd04c73c3081277fe9c98c4a386c8baf956f5ca'
@jamiehodge
jamiehodge / file.rb
Created November 22, 2013 12:38
simple mapper
require_relative 'links'
require_relative 'tags'
module Foil
class File
attr_accessor :id,
:category_id, :license_id, :visibility_id,
:description, :name,
:annotations, :authors, :editors, :links, :publishers, :tags
ld: warning: directory not found for option '-L/Users/jamiehodge/Documents/development/rubinius/rubinius/lib'
/Users/jamiehodge/Documents/development/rubinius/rubinius/bin/rbx extconf.rb
An exception occurred running extconf.rb:
no such file to load -- ffi2/generators (LoadError)
Backtrace:
Rubinius::CodeLoader#load_error at kernel/common/code_loader.rb:440
Rubinius::CodeLoader#resolve_require_path at kernel/common/code_loader.rb:423