class Hubris def initialize(&block) instance_eval(&block) end def before(&block) @before = block end def it(name, &block) @test = block end # etc ... def run instance_eval(&@before) instance_eval(&@test) instance_eval(&@after) end end stash evaluate evaluate
subcontexts: parent & child def run_befores @parent.run_befores if @parent instance_eval(&@before) end def run run_befores instance_eval(&@test) # etc ... end