Skip to content

Instantly share code, notes, and snippets.

@devpuppy
devpuppy / kwurry_talk.rb
Last active November 19, 2019 21:50
RubyConf Kwurry Lightning Talk
# currying
add = ->(a, b) {
a + b
}
add_two = add.curry.(2)
# => #<Proc:0x00007f911d0962c0 (lambda)>
add_two.(1)
# => 3
@devpuppy
devpuppy / hmap_perf.rb
Last active December 1, 2015 19:44
perf comp of Hash#hmap implementations
require 'benchmark/ips'
# hash.size # 1000
# hash.values.flatten.size # 500500
def a_big_hash
{}.tap do |h|
1.upto(1000) { |i| h[i.to_s.to_sym] = 1.upto(i).to_a }
end
end
@devpuppy
devpuppy / gist.js
Last active August 29, 2015 14:20
Tools for working with JavaScript gists
function ajax(url, callback) {
var xhr = new XMLHttpRequest();
xhr.onreadystatechange = function() {
if (xhr.readyState === 4) {
callback(xhr.responseText);
}
}
xhr.open('GET', url, true);
xhr.send();
}
@devpuppy
devpuppy / hosted.js
Last active August 29, 2015 14:20
eval gist
alert(window.location.pathname);
@devpuppy
devpuppy / luminosity_constrast_ratio.rb
Created March 25, 2015 21:26
Calculate the Luminosity Contrast Ratio between two colors for readability
# http://andora.us/blog/2011/03/03/choosing-foreground-using-luminosity-contrast-ratio/
# color contrast ratio ranges from 1 (least) to 21 (most, white/black)
class Color
attr_reader :r, :g, :b
def initialize(hex)
raise 'Invalid hex code' unless hex =~ /[0-9a-f]{6}/i
hexes = hex.scan /.{2}/
@r,@g,@b = hexes.map { |h| h.hex.to_i }
end
@devpuppy
devpuppy / vcmp.sh
Created October 27, 2014 17:47
utilities for comparing version strings on OS X
#!/bin/bash
# accepts as many version strings as you like
# returns them in order, one per line, highest first
function vseq()
{
# collect arbitrary number of args
while [ -n "$1" ]; do
args="$args$1,"
shift
@devpuppy
devpuppy / diffedit.sh
Created November 14, 2013 22:12
alias diffedit
# subl . + all files that have been edited in this branch
# your $EDITOR may vary
alias diffedit="(echo '.' && git diff --name-only `git merge-base origin/master HEAD`) | xargs subl"
@devpuppy
devpuppy / user_dot_trebuchet_spec.rb
Created November 26, 2012 17:40
How to stub user.trebuchet to always return true for any feature
# as a one-liner to use in an rspec example
@user.stub(:trebuchet).and_return(double(@user.trebuchet, :launch? => true))
# more verbose example
it "should stub user.trebuchet" do
@user = Factory(:user)
@user.trebuchet.launch?("something ridiculous").should be_false
enthusiastic_trebuchet = double(@user.trebuchet, :launch? => true)
@user.stub(:trebuchet).and_return(enthusiastic_trebuchet)
@devpuppy
devpuppy / airbrake_to_csv.rb
Created January 25, 2012 21:23
Airbrake exporter + stats
# code at http://gist.github.com/3350
# tests at http://gist.github.com/3354
require 'rubygems'
require 'active_resource'
require 'time'
class Hoptoad < ActiveResource::Base
self.site = "https://YOUR_ACCOUNT.hoptoadapp.com"
class << self
@devpuppy
devpuppy / nokogiri libxml homebrew lion
Created November 8, 2011 23:26
How to fix: Nokogiri was built against LibXML version 2.7.3, but has dynamically loaded 2.7.8
FIXME:
WARNING: Nokogiri was built against LibXML version 2.7.3, but has dynamically loaded 2.7.8
or
libxml_ruby.bundle: dlsym(0x10fde1900, Init_libxml_ruby): symbol not found
gem uninstall nokogiri libxml-ruby
brew update
brew uninstall libxml2