Class: Admission::Privilege::OrderDefiner
- Inherits:
-
Object
- Object
- Admission::Privilege::OrderDefiner
- Defined in:
- lib/admission/privilege.rb
Instance Attribute Summary collapse
-
#definitions ⇒ Object
readonly
Returns the value of attribute definitions.
Class Method Summary collapse
Instance Method Summary collapse
-
#initialize ⇒ OrderDefiner
constructor
A new instance of OrderDefiner.
- #privilege(name, levels: [], inherits: nil) ⇒ Object
Constructor Details
#initialize ⇒ OrderDefiner
Returns a new instance of OrderDefiner.
79 80 81 |
# File 'lib/admission/privilege.rb', line 79 def initialize @definitions = {} end |
Instance Attribute Details
#definitions ⇒ Object (readonly)
Returns the value of attribute definitions.
77 78 79 |
# File 'lib/admission/privilege.rb', line 77 def definitions @definitions end |
Class Method Details
.define(&block) ⇒ Object
101 102 103 104 105 106 107 |
# File 'lib/admission/privilege.rb', line 101 def self.define &block definer = new definer.instance_exec &block definer.send :setup_inheritance definer.send :build_index end |
Instance Method Details
#privilege(name, levels: [], inherits: nil) ⇒ Object
83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 |
# File 'lib/admission/privilege.rb', line 83 def privilege name, levels: [], inherits: nil name = name.to_sym if ([name] + levels).any?{|id| id == Admission::Privilege::RESERVED_ID } raise "reserved name `#{Admission::Privilege::RESERVED_ID}` !" end levels.unshift Admission::Privilege::BASE_LEVEL_NAME levels.map!{|level| Admission::Privilege.new name, level} inherits = nil if inherits && inherits.empty? if inherits inherits = *inherits inherits = inherits.map(&:to_sym).uniq end @definitions[name] = {levels: levels, inherits: inherits} end |