Sha256: 6277fb77eac38a075e13a4374826d0a44eca4a820ee9c64379c81633f5d66e9b
Contents?: true
Size: 954 Bytes
Versions: 1
Compression:
Stored size: 954 Bytes
Contents
module Apitizer module Routing module Node class Collection < Base def initialize(name, options = {}) @name = name only = options[:only] except = options[:except] || [] @actions = (only && Array(only) || Apitizer.actions) - Array(except) end def recognize?(steps) @name == steps.first end def permit?(action, options) @actions.include?(action) && Helper.action_scope(action) == options.fetch(:on) end private 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 end end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
apitizer-0.0.3 | lib/apitizer/routing/node/collection.rb |