# sometimes you want an object to exist as a promise, but not quite initialize
# itself until needed.  here's a little design pattern that makes that super
# easy

Klass = BlankSlate.new

def Klass.method_missing(meth, *args, &block)
  Object.send(:remove_const, :Klass)
  Object.send(:const_set, :Klass, instance = Klass.instance)
  instance.send(meth, *args, &block)
end

# http://onestepback.org/index.cgi/Tech/Ruby/BlankSlate.rdoc for