Sha256: 6e796b67d6e4df305e612a1cc32e832d2ba7f4cdb482d04a17945c4d9d61998e
Contents?: true
Size: 971 Bytes
Versions: 1
Compression:
Stored size: 971 Bytes
Contents
module Aerogel::Routes class Namespace def initialize( base, path, &block ) @base = base @prefix_path = path instance_eval &block end def method_missing( method, *args, &block ) @base.send method, *args, &block end 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 def self.prefix( *methods ) methods.each do |method| define_method(method) {|*args, &block| prefixed( method, *args, &block ) } end end prefix :get, :post, :put, :delete, :before, :after, :namespace, :route end # class Namespace end # module Aerogel::Routes
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
aerogel-core-1.3.0 | lib/aerogel/core/routes/namespace.rb |