Module: RoleStrategy::ActiveRecord::RolesMask::Implementation
- Defined in:
- lib/roles_active_record/strategy/multi/roles_mask.rb
Defined Under Namespace
Classes: Roles
Instance Method Summary collapse
- #role_attribute ⇒ Object
-
#roles ⇒ Object
query assigned roles.
-
#roles=(*roles) ⇒ Object
(also: #role=)
assign roles.
- #roles_list ⇒ Object
Instance Method Details
#role_attribute ⇒ Object
52 53 54 |
# File 'lib/roles_active_record/strategy/multi/roles_mask.rb', line 52 def role_attribute strategy_class.roles_attribute_name end |
#roles ⇒ Object
query assigned roles
66 67 68 |
# File 'lib/roles_active_record/strategy/multi/roles_mask.rb', line 66 def roles strategy_class::Roles.new(self, strategy_class.valid_roles.reject { |r| ((self.send(role_attribute) || 0) & calc_index(r)).zero? }) end |
#roles=(*roles) ⇒ Object Also known as: role=
assign roles
57 58 59 60 61 62 |
# File 'lib/roles_active_record/strategy/multi/roles_mask.rb', line 57 def roles=(*roles) the_roles = (roles.flatten.map { |r| r.to_sym } & strategy_class.valid_roles) value = the_roles.map{ |r| calc_index(r) }.inject{ |sum, bitvalue| sum + bitvalue } puts "value: #{value}" self.send "#{role_attribute}=", value end |
#roles_list ⇒ Object
70 71 72 |
# File 'lib/roles_active_record/strategy/multi/roles_mask.rb', line 70 def roles_list roles.to_a end |