class Bali::Ruler

This class represents all roles, and its rules, for a resource

Attributes

model_class[R]
roles[RW]

Public Class Methods

for(record_class) click to toggle source
# File lib/bali/ruler.rb, line 8
def self.for(record_class)
  rule_class = Bali::Rules.for(record_class)
  rule_class.ruler if rule_class
end
new(model_class) click to toggle source
# File lib/bali/ruler.rb, line 13
def initialize(model_class)
  @model_class = model_class
  @roles = {}
  @roles[nil] = Bali::Role.new(nil)
end

Public Instance Methods

<<(role) click to toggle source
# File lib/bali/ruler.rb, line 19
def << role
  @roles[role.name] = role
end
[](role) click to toggle source
# File lib/bali/ruler.rb, line 23
def [] role
  symbolized_role = role.to_sym if role
  @roles[symbolized_role]
end
find_or_create_role(role_name) click to toggle source
# File lib/bali/ruler.rb, line 28
def find_or_create_role role_name
  role = self[role_name]

  if role.nil?
    role = Bali::Role.new(role_name)
    self << role
  end

  role
end