class Aerogel::Routes::Namespace
Public Class Methods
new( base, path, &block )
click to toggle source
# File lib/aerogel/core/routes/namespace.rb, line 5 def initialize( base, path, &block ) @base = base @prefix_path = path instance_eval &block end
prefix( *methods )
click to toggle source
# File lib/aerogel/core/routes/namespace.rb, line 28 def self.prefix( *methods ) methods.each do |method| define_method(method) {|*args, &block| prefixed( method, *args, &block ) } end end
Public Instance Methods
method_missing( method, *args, &block )
click to toggle source
# File lib/aerogel/core/routes/namespace.rb, line 11 def method_missing( method, *args, &block ) @base.send method, *args, &block end
prefixed( method, *args, &block )
click to toggle source
# File lib/aerogel/core/routes/namespace.rb, line 15 def prefixed( method, *args, &block ) options = Hash === args.last ? args.pop : {} routes = [*(args.pop || '*')] routes, args = routes+args, [] unless method == :route routes.map!{|r| @prefix_path+r } routes = [routes] if method == :route p_args = [] p_args += args unless args.empty? p_args += routes # unless routes.empty? p_args += options unless options.empty? @base.send method, *p_args, &block end