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 / sinatra-mount.rb
Created June 20, 2012 11:34
sinatra/mount
require 'sinatra/base'
module Sinatra
module Mount
def mount(app, route="/#{app.name.downcase}")
before "#{route}*" do
halt app.call(
env.merge(
'SCRIPT_NAME' => route.split('/').last,
require 'sinatra'
require 'slim'
require 'json'
require 'coffee_script'
get '/search' do
data = %w(apple appetite america anorak orange pineapple people banana bungalow)
results = data.select {|d| d =~ /^#{params[:q]}/ }
content_type :json
@jamiehodge
jamiehodge / nested_attributes.rb
Created June 26, 2012 10:25
Nested attributes and referential integrity
require 'sequel'
require 'sqlite3'
require 'logger'
DB = Sequel.sqlite
DB.loggers << Logger.new($stdout)
DB.instance_eval do
create_table :items do
@jamiehodge
jamiehodge / app.rb
Created July 3, 2012 14:11
HTML5 video preview
require 'sinatra'
require 'slim'
require 'coffee_script'
get '/' do
slim :new
end
__END__
@@new
@jamiehodge
jamiehodge / warden.rb
Created September 6, 2012 12:57
Warden scopes
Warden::Manager.serialize_into_session {|user| user.id}
Warden::Manager.serialize_from_session {|id| p 'author'; Author[id]}
Warden::Manager.serialize_from_session(:admin) {|id| p 'user'; User[id]}
Warden::Manager.before_failure do |env, opts|
env['REQUEST_METHOD'] = 'POST'
end
Warden::Strategies.add :password do
@jamiehodge
jamiehodge / router.rb
Created October 8, 2012 07:37
Sinatra + Journey
require 'journey'
require 'sinatra/base'
require 'forwardable'
class Router
extend Forwardable
def_delegators :@router, :call
def_delegator :@formatter, :generate
def initialize
@jamiehodge
jamiehodge / test.rb
Created November 9, 2012 09:26
Sinatra + Puma + Rubinius 2.0
require "sinatra/base"
require "puma"
require "rack/handler/puma"
require "minitest/autorun"
require "net/http"
require "slim"
class App < Sinatra::Base
post "/" do
@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 / 4444.patch
Created December 9, 2012 22:44
Prores 4444 patch
diff --git a/libavcodec/proresenc_kostya.c b/libavcodec/proresenc_kostya.c
index 375dc52..4a27841 100644
--- a/libavcodec/proresenc_kostya.c
+++ b/libavcodec/proresenc_kostya.c
@@ -40,6 +40,7 @@ enum {
PRORES_PROFILE_LT,
PRORES_PROFILE_STANDARD,
PRORES_PROFILE_HQ,
+ PRORES_PROFILE_4444,
};
require 'formula'
class Ffmpeg < Formula
homepage 'http://ffmpeg.org/'
url 'http://ffmpeg.org/releases/ffmpeg-1.0.tar.bz2'
sha1 'bf1f917c4fa26cf225616f2063e60c33cac546be'
head 'git://github.com/jamiehodge/FFmpeg.git'
option "without-x264", "Disable H264 encoder"