Pastie now auto-senses if line-wrap is a bad or good idea. Feedback?
## mark a section (Learn more)
## # test/spec/mini # chris@ozmm.org # def context(*args, &block) return super unless (name = args.first) && block require 'test/unit' klass = Class.new(Test::Unit::TestCase) do def self.specify(name, &block) define_method("test_#{name.gsub(/\W/,'_')}", &block) end def self.xspecify(*args) end def self.setup(&block) define_method(:setup, &block) end def self.teardown(&block) define_method(:teardown, &block) end end klass.class_eval &block end # ensure setup / spec / teardown order # also ensure we can define methods inline so `include Helpers` works context "test/spec/mini" do def put(message) @messages << message end setup do @messages = [] put :setup assert true end specify "a specification!" do put :specify1 assert true end specify "another specification?!" do put :specify2 assert true end specify "failed spec" do put :failed flunk end specify "error spec" do put :error raise "donut" end xspecify "disabled spec" do put :disabled assert true end teardown do put :teardown assert true Kernel.puts @messages.join(':') end end
This paste will be private.
From the Design Piracy series on my blog: