class RoleCore::ComputedPermissions

Public Class Methods

new(permissions = []) click to toggle source
# File lib/role_core/computed_permissions.rb, line 7
def initialize(permissions = [])
  @permissions = [].concat permissions.to_a
  regroup!
end

Public Instance Methods

call(context, *args) click to toggle source
# File lib/role_core/computed_permissions.rb, line 19
def call(context, *args)
  @permissions.each do |permission|
    permission.call(context, *args)
  end

  self
end
concat(permissions) click to toggle source
# File lib/role_core/computed_permissions.rb, line 12
def concat(permissions)
  @permissions.concat permissions
  regroup!

  self
end

Private Instance Methods

regroup!() click to toggle source
# File lib/role_core/computed_permissions.rb, line 29
def regroup!
  @permissions.uniq!
  @permissions.sort_by!(&:priority)
end