Skip to content

Instantly share code, notes, and snippets.

View maetl's full-sized avatar

Mark Rickerby maetl

View GitHub Profile
@maetl
maetl / gist:8914783
Created February 10, 2014 12:10
Heroku Ruby/Bower buildpack with branch that fixes the caching race condition bullshit from Bower
heroku config:set BUILDPACK_URL=git://github.com/qnyp/heroku-buildpack-ruby-bower.git#workaround-for-bower-cache-bug
@maetl
maetl / toy_model.rb
Created June 12, 2014 10:50
Proof of concept for a toy ORM that combines some aspects of the ActiveRecord API with an in-memory query model based on the Axiom relational algebra API.
require 'virtus'
require 'axiom-memory-adapter'
module Mementus
# Proof of concept for a toy ORM that combines some aspects of the
# ActiveRecord API with an in-memory query model based on the Axiom
# relational algebra API.
#
# The weirdest trick is that the data stored in the relational model
@maetl
maetl / gist:363fe5d7ba14215b054f
Created March 3, 2015 14:09
rom rails stack trace
/Users/maetl/.rvm/gems/ruby-2.1.4/gems/rom-0.6.0.beta2/lib/rom/support/registry.rb:26:in `block in []': nil doesn't exist in ROM::RelationRegistry registry (ROM::Registry::ElementNotFoundError)
from /Users/maetl/.rvm/gems/ruby-2.1.4/gems/rom-0.6.0.beta2/lib/rom/support/registry.rb:26:in `fetch'
from /Users/maetl/.rvm/gems/ruby-2.1.4/gems/rom-0.6.0.beta2/lib/rom/support/registry.rb:26:in `[]'
from /Users/maetl/.rvm/gems/ruby-2.1.4/gems/rom-0.6.0.beta2/lib/rom/setup/finalize.rb:91:in `block in load_readers'
from /Users/maetl/.rvm/gems/ruby-2.1.4/gems/rom-0.6.0.beta2/lib/rom/setup/finalize.rb:90:in `each'
from /Users/maetl/.rvm/gems/ruby-2.1.4/gems/rom-0.6.0.beta2/lib/rom/setup/finalize.rb:90:in `load_readers'
from /Users/maetl/.rvm/gems/ruby-2.1.4/gems/rom-0.6.0.beta2/lib/rom/setup/finalize.rb:53:in `run!'
from /Users/maetl/.rvm/gems/ruby-2.1.4/gems/rom-0.6.0.beta2/lib/rom/setup.rb:61:in `finalize'
from /Users/maetl/.rvm/gems/ruby-2.1.4/gems/rom-0.6.0.beta2/lib/rom/global.rb:176:in `finalize'
from /Use
@maetl
maetl / Rakefile
Created March 22, 2015 02:30
Screen scraping 101
require 'nokogiri'
require 'json'
POPULATION = 'List_of_countries_and_dependencies_by_population'
ISO_CODES = 'ISO_3166-1'
COUNTRY_CODES = {}
COUNTRIES = []
def make_country(code, name, population)
@maetl
maetl / hash_spec.rb
Created March 30, 2015 09:51
Interesting quirk with Structs in Transproc
# spec/integration/hash_spec.rb
describe 'combining transformations' do
it 'applies functions to a struct' do
symbolize_keys = Transproc(:symbolize_keys)
map = Transproc(:map_hash, user_name: :name, user_email: :email)
transformation = symbolize_keys + map
InputUser = Struct.new(:user_name, :user_email)
@maetl
maetl / filter.rb
Last active August 29, 2015 14:18
Several more or less hacky ways to generate filter parameters as described in the JSON API recommendation (http://jsonapi.org/recommendations/). It looks as if using “filter[name]=value” directly is incompatible with the URI Template specification documented in RFC6570, but “filter%5Bname%5D=value” works. Unsure if that’s expected or not. The Fi…
require 'addressable/template'
class Filter::RawParams
def initialize(params)
@params = params
end
def encode_value(value)
Addressable::URI.encode_component(value, Addressable::URI::CharacterClasses::UNRESERVED)
end
@maetl
maetl / Ode to Auckland
Created May 20, 2009 04:18
By James K. Baxter
Auckland, you great arsehole,
Some things I like about you
Some things I cannot like.
I came to the Art School, carrying the paintings
Of an eighteen-year-old chick.
On the door of one room somebody had written 'life'
But there was death inside it.
A skeleton hung there by a hook in its skull
renaming a repository on github:
- remember to edit the ./git/config file to point to the new path
country:
- iso2:
- iso3:
- name:
- official_name:
- alternative_name:
language:
- iso:
- name:
## installing locales (tested on ubuntu) ##
list current locales installed on system:
$> locale -a
install and compile new locale
$> sudo apt-get install language-pack-es-base