Skip to content

Instantly share code, notes, and snippets.

View jbarnette's full-sized avatar

John Barnette jbarnette

View GitHub Profile
require "test/unit"
class Module
alias_method :old_private, :private
def private(*args)
old_private(*args)
end
end
@jbarnette
jbarnette / rake_in_30_lines.rb
Created August 21, 2008 20:26
...make that 28
require "set"
module RakeTask
CALLED = Set.new
NAMESPACES = []
TASKS = Hash.new { |h, k| h[k] = Struct.new(:blocks, :deps).new([], []) }
def self.call(name)
return if CALLED.include?(name)
raise "Unknown task: #{name.inspect}" unless TASKS.key?(name)
require "test/unit"
module Kernel
def describe(description, &block)
Class.new(Unitard::TestCase, &block)
end
end
module Unitard
class TestCase < Test::Unit::TestCase
require "rubygems"
require "johnson"
require "./visitor.rb"
js =<<-END
function top() {
"top docstring", { command: true }
doSomething();
};
class Array
def poke(item, &block)
push(item)
yield(item)
pop
end
end
namespace :db do
task :migrate => :clear_load_paths do
Dependencies.load_paths = @old_load_paths
end
task :clear_load_paths do
@old_load_paths = Dependencies.load_paths
Dependencies.load_paths = []
end
end

Note to Self

Be Confident

Tests build confidence. Write 'em. They'll save your ass, and they'll let you take a chainsaw to your code without being afraid of unintended consequences.

Be Lazy

jbarnette@slice:/etc$ dpkg -l 'libxslt*'
Desired=Unknown/Install/Remove/Purge/Hold
| Status=Not/Installed/Config-f/Unpacked/Failed-cfg/Half-inst/t-aWait/T-pend
|/ Err?=(none)/Hold/Reinst-required/X=both-problems (Status,Err: uppercase=bad)
||/ Name Version Description
+++-==============-==============-============================================
un libxslt-dev <none> (no description available)
un libxslt0-dev <none> (no description available)
un libxslt1 <none> (no description available)
ii libxslt1-dev 1.1.22-1ubuntu XSLT processing library - development kit
@jbarnette
jbarnette / application_controller.rb
Created January 7, 2009 23:44
An intercession.
class ApplicationController < ActionController::Base
include Intercession
before_filter :load_skin
before_filter :require_user
before_filter :require_matching_skin
before_filter :require_admin
def load_skin
session.skin = Skin.for_request(request)
on "#list" do
map :bgcolor => :color
@members.each_with_index do |m, i|
element(:bgcolor => i % 2 == 0 ? '#FFCCCC' : '#CCCCFF')
end
end
on("#name").tag.content = @member.name