Skip to content

Instantly share code, notes, and snippets.

View dgraham's full-sized avatar
💭

David Graham dgraham

💭
View GitHub Profile
@dgraham
dgraham / template.js
Last active February 2, 2018 10:17
Minimum Viable Mustache
// $ traceur --experimental --out template-es6.js template.js
function escape(text) {
let el = document.createElement('p')
el.textContent = text
return el.innerHTML
}
function node(html) {
let parser = new DOMParser()

Keybase proof

I hereby claim:

  • I am dgraham on github.
  • I am dgraham (https://keybase.io/dgraham) on keybase.
  • I have a public key whose fingerprint is 87B9 DDE7 41E3 D8B8 0DC7 F2E4 AA94 05DC E2E0 D208

To claim this, I am signing this object:

@dgraham
dgraham / install-ruby
Last active May 6, 2019 01:45
Install Ruby 2.0 with ruby-build.
git clone https://github.com/sstephenson/ruby-build.git
cd ruby-build
sudo ./install.sh
sudo ruby-build 2.0.0-p247 /usr/local
cd .. && rm -rf ruby-build
@dgraham
dgraham / gist:3750660
Created September 19, 2012 16:37
Hash -> Schema
require 'minitest/spec'
require 'minitest/autorun'
require 'set'
class Schemas
def initialize
@schemas = Set.new
end
def <<(hash)
@dgraham
dgraham / gist:2210713
Created March 26, 2012 23:41
Fibered Recursive Descent JSON Parser
#!/usr/bin/env ruby
require 'fiber'
# A resumable, recursive descent JSON parser, using Fibers.
# http://www.negativecode.com/posts/2012/03/26/fibers-resumable-recursive-descent-json-parsing/
class Parser
Result = Struct.new(:value)
def initialize
@dgraham
dgraham / gist:1260596
Created October 4, 2011 00:10
EM::PriorityQueue using RBTree
module EventMachine
class PriorityQueue < Queue
def initialize(&comparator)
super
@items = Items.new(comparator)
end
class Items
def initialize(comparator)
require 'rbtree'