class Permissions

Constants

VERSION

Attributes

default[R]
permissions[R]

Public Class Methods

new(permissions = {}) click to toggle source
# File lib/permissions.rb, line 16
def initialize(permissions = {})
  @permissions = permissions

  if block_given?
    @default = Proc.new
  else
    @default = proc { false }
  end
end

Public Instance Methods

authorize?(key, *args) click to toggle source
# File lib/permissions.rb, line 30
def authorize?(key, *args)
  permissions.fetch(key, default).call(*args)
end
deep_dup(initial_permissions = {}) click to toggle source
# File lib/permissions.rb, line 34
def deep_dup(initial_permissions = {})
  self.class.new(initial_permissions.merge(permissions)) { default }
end
for(*keys, &block) click to toggle source
# File lib/permissions.rb, line 26
def for(*keys, &block)
  keys.each { |key| permissions[key] = block }
end