$TESTING=true require 'rubygems' require 'merb-core' # TODO: Boot Merb, via the Test Rack adapter Merb.start :environment => (ENV['MERB_ENV'] || 'test'), :merb_root => File.join(File.dirname(__FILE__), ".." ) Spec::Runner.configure do |config| config.include(Merb::Test::ViewHelper) config.include(Merb::Test::RouteHelper) config.include(Merb::Test::ControllerHelper) end ### METHODS BELOW THIS LINE SHOULD BE EXTRACTED TO MERB ITSELF class Hash ## # Filter keys out of a Hash. # # { :a => 1, :b => 2, :c => 3 }.except(:a) # => { :b => 2, :c => 3 } def except(*keys) self.reject { |k,v| keys.include?(k || k.to_sym) } end ## # Override some keys. # # { :a => 1, :b => 2, :c => 3 }.with(:a => 4) # => { :a => 4, :b => 2, :c => 3 } def with(overrides = {}) self.merge overrides end ## # Returns a Hash with only the pairs identified by +keys+. # # { :a => 1, :b => 2, :c => 3 }.only(:a) # => { :a => 1 } def only(*keys) self.reject { |k,v| !keys.include?(k || k.to_sym) } end end