Sha256: 22eee4d6215fa8f80f17c8a876c1df03e6307c6b2d1ce469d9ed4c0e93a50f74
Contents?: true
Size: 1.82 KB
Versions: 3
Compression:
Stored size: 1.82 KB
Contents
module Praxis module Skeletor class RestfulRoutingConfig attr_reader :name, :resource_definition, :routes def initialize(name, resource_definition, &block) @name = name @resource_definition = resource_definition @routes = [] @version_prefix = "" if resource_definition.version_options version_using = Array(resource_definition.version_options[:using]) if version_using.include?(:path) @version_prefix = "#{Praxis::Request::path_version_prefix}#{resource_definition.version}" end end prefix( "/" + resource_definition.name.split("::").last.underscore ) if resource_definition.routing_config instance_eval(&resource_definition.routing_config) end instance_eval(&block) end def prefix(prefix=nil) @path_prefix = prefix if prefix @version_prefix + @path_prefix end def options(path, opts={}) add_route 'OPTIONS', path, opts end def get(path, opts={}) add_route 'GET', path, opts end def head(path, opts={}) add_route 'HEAD', path, opts end def post(path, opts={}) add_route 'POST', path, opts end def put(path, opts={}) add_route 'PUT', path, opts end def delete(path, opts={}) add_route 'DELETE', path, opts end def trace(path, opts={}) add_route 'TRACE', path, opts end def connect(path, opts={}) add_route 'CONNECT', path, opts end def patch(path, opts={}) add_route 'PATCH', path, opts end def any(path, opts={}) add_route 'ANY', path, opts end def add_route(verb, path, options={}) path = Mustermann.new(prefix + path) @routes << Route.new(verb, path, resource_definition.version, **options) end end end end
Version data entries
3 entries across 3 versions & 1 rubygems
Version | Path |
---|---|
praxis-0.15.0 | lib/praxis/skeletor/restful_routing_config.rb |
praxis-0.14.0 | lib/praxis/skeletor/restful_routing_config.rb |
praxis-0.13.0 | lib/praxis/skeletor/restful_routing_config.rb |