class Hanami::Routing::Resource
Set of RESTful resource routes Implementation of Hanami::Router#resource
@since 0.1.0
@api private
Constants
- NESTED_ROUTES_SEPARATOR
@api private @since 0.4.0
Attributes
parent[R]
@api private @since 0.4.0
Public Class Methods
new(router, name, options = {}, parent = nil, &blk)
click to toggle source
@api private @since 0.1.0
# File lib/hanami/routing/resource.rb, line 56 def initialize(router, name, options = {}, parent = nil, &blk) @router = router @name = name @parent = parent @options = Options.new(self.class.actions, options.merge(name: @name)) generate(&blk) end
Public Instance Methods
resource(name, options = {}, &blk)
click to toggle source
Allow nested resource inside resource or resources
@since 0.4.0
# File lib/hanami/routing/resource.rb, line 78 def resource(name, options = {}, &blk) _resource(Resource, name, options, &blk) end
resources(name, options = {}, &blk)
click to toggle source
Allow nested resources inside resource or resources
@since 0.4.0
# File lib/hanami/routing/resource.rb, line 69 def resources(name, options = {}, &blk) _resource(Resources, name, options, &blk) end
wildcard_param(route_param = nil)
click to toggle source
Return separator
@api private @since 0.4.0
# File lib/hanami/routing/resource.rb, line 86 def wildcard_param(route_param = nil) NESTED_ROUTES_SEPARATOR end
Private Instance Methods
_resource(klass, name, options, &blk)
click to toggle source
@api private @since 0.4.0
# File lib/hanami/routing/resource.rb, line 94 def _resource(klass, name, options, &blk) options = options.merge(separator: @options[:separator], namespace: @options[:namespace]) klass.new(@router, [@name, name].join(NESTED_ROUTES_SEPARATOR), options, self, &blk) end
collection(&blk)
click to toggle source
@api private
# File lib/hanami/routing/resource.rb, line 114 def collection(&blk) self.class.collection.new(@router, @options, self, &blk) end
generate(&blk)
click to toggle source
@api private
# File lib/hanami/routing/resource.rb, line 100 def generate(&blk) instance_eval(&blk) if block_given? @options.actions.each do |action| self.class.action.generate(@router, action, @options, self) end end
member(&blk)
click to toggle source
@api private
# File lib/hanami/routing/resource.rb, line 109 def member(&blk) self.class.member.new(@router, @options, self, &blk) end