class Hanami::Routing::Resource::CollectionAction

Collection action It implements collection within a resource block.

@api private @since 0.1.0 @see Hanami::Router#resource

Public Instance Methods

generate(&blk) click to toggle source

@since 0.1.0 @api private

# File lib/hanami/routing/resource/action.rb, line 285
def generate(&blk)
  instance_eval(&blk) if block_given?
end

Protected Instance Methods

method_missing(m, *args) click to toggle source

@since 0.1.0 @api private

# File lib/hanami/routing/resource/action.rb, line 292
def method_missing(m, *args)
  verb        = m
  action_name = Utils::PathPrefix.new(args.first).relative_join(nil)

  @router.__send__ verb, path(action_name),
    to: endpoint(action_name), as: as(action_name)
end

Private Instance Methods

as(action_name) click to toggle source

@since 0.1.0 @api private

Calls superclass method Hanami::Routing::Resource::Action#as
# File lib/hanami/routing/resource/action.rb, line 315
def as(action_name)
  [ action_name, super() ].join(self.class.named_route_separator).to_sym
end
endpoint(action_name) click to toggle source

@since 0.1.0 @api private

# File lib/hanami/routing/resource/action.rb, line 309
def endpoint(action_name)
  [ controller_name, action_name ].join separator
end
path(action_name) click to toggle source

@since 0.1.0 @api private

# File lib/hanami/routing/resource/action.rb, line 303
def path(action_name)
  rest_path.join(action_name)
end