lib/jellyfish.rb in jellyfish-1.1.1 vs lib/jellyfish.rb in jellyfish-1.2.0

- old
+ new

@@ -1,9 +1,8 @@ module Jellyfish autoload :VERSION , 'jellyfish/version' - autoload :NewRelic, 'jellyfish/newrelic' autoload :NormalizedParams, 'jellyfish/normalized_params' autoload :NormalizedPath , 'jellyfish/normalized_path' autoload :Builder , 'jellyfish/builder' @@ -157,16 +156,19 @@ controller_include. inject(value){ |ctrl, mod| ctrl.__send__(:include, mod) } end %w[options get head post put delete patch].each do |method| - module_eval <<-RUBY - def #{method} route=//, meta={}, &block - raise TypeError.new("Route \#{route} should respond to :match") \ - unless route.respond_to?(:match) - (routes['#{method}'] ||= []) << [route, block || lambda{|_|}, meta] - end - RUBY + define_method(method) do |route=//, meta={}, &block| + define(method, route, meta, &block) + end + end + + def define(method, route=//, meta={}, &block) + raise TypeError.new("Route #{route} should respond to :match") \ + unless route.respond_to?(:match) + + (routes[method.to_s] ||= []) << [route, block || lambda{|_|}, meta] end def inherited sub sub.handle_exceptions(handle_exceptions) sub.controller_include(*controller_include)