class Spine::Restrictions::Registration
Attributes
exceptions[R]
restriction[R]
restrictions[R]
Public Class Methods
new(restriction)
click to toggle source
# File lib/spine/restrictions/registration.rb, line 6 def initialize(restriction) @restriction = restriction @exceptions = {} @restrictions = {} end
Public Instance Methods
applies?(action, resource)
click to toggle source
# File lib/spine/restrictions/registration.rb, line 22 def applies?(action, resource) return false if exception?(action, resource) includes?(restrictions, action, resource) end
except(action, resource)
click to toggle source
# File lib/spine/restrictions/registration.rb, line 17 def except(action, resource) add(exceptions, action, resource) self end
restrict(action, resource)
click to toggle source
# File lib/spine/restrictions/registration.rb, line 12 def restrict(action, resource) add(restrictions, action, resource) self end
Private Instance Methods
add(collection, action, resource)
click to toggle source
# File lib/spine/restrictions/registration.rb, line 41 def add(collection, action, resource) collection[resource] ||= {} collection[resource][action] = true end
exception?(action, resource)
click to toggle source
# File lib/spine/restrictions/registration.rb, line 30 def exception?(action, resource) includes?(exceptions, action, resource) end
includes?(collection, action, resource)
click to toggle source
# File lib/spine/restrictions/registration.rb, line 34 def includes?(collection, action, resource) actions = collection[resource] || collection[:all] return false unless actions actions[action] || actions[:all] end