class Apitizer::Routing::Node::Collection
Public Class Methods
new(name, options = {})
click to toggle source
# File lib/apitizer/routing/node/collection.rb, line 5 def initialize(name, options = {}) @name = name only = options[:only] except = options[:except] || [] @actions = (only && Array(only) || Apitizer.actions) - Array(except) end
Public Instance Methods
permit?(action, options)
click to toggle source
# File lib/apitizer/routing/node/collection.rb, line 16 def permit?(action, options) @actions.include?(action) && Helper.action_scope(action) == options.fetch(:on) end
recognize?(steps)
click to toggle source
# File lib/apitizer/routing/node/collection.rb, line 12 def recognize?(steps) @name == steps.first end
Private Instance Methods
walk(steps, path)
click to toggle source
# File lib/apitizer/routing/node/collection.rb, line 23 def walk(steps, path) path.advance(steps.shift, node: self, on: :collection) return if steps.empty? children.each do |child| next unless child.respond_to?(:on?) && child.on?(:collection) return if child.recognize?(steps) end path.advance(steps.shift, node: self, on: :member) end