class Troles::Storage::BitMany
Public Class Methods
new(role_subject)
click to toggle source
constructor @param [Object] the role subject
Calls superclass method
Troles::Common::Storage::new
# File lib/troles/storage/bit_many.rb, line 11 def initialize role_subject super end
Public Instance Methods
clear!()
click to toggle source
Clears the role state of the role subject
# File lib/troles/storage/bit_many.rb, line 37 def clear! set_ds_field 0 end
display_roles()
click to toggle source
display the roles as a list of symbols see Troles::Marshaller::Bitmask @return [Array<Symbol>] roles list
# File lib/troles/storage/bit_many.rb, line 18 def display_roles return [] if !ds_field_value? bitmask.read end
ds_field_value?()
click to toggle source
# File lib/troles/storage/bit_many.rb, line 23 def ds_field_value? ds_field_value > 0 end
set_default_role!()
click to toggle source
Sets role to default state
# File lib/troles/storage/bit_many.rb, line 42 def set_default_role! clear! end
set_roles(*roles)
click to toggle source
saves the roles for the role subject in the data store see Troles::Marshaller::Bitmask @param [Array<Symbol>] roles list
# File lib/troles/storage/bit_many.rb, line 30 def set_roles *roles roles = roles.to_symbols_uniq return clear! if roles.empty? set_ds_field bitmask.write(roles.to_symbols) end
Protected Instance Methods
bitmask()
click to toggle source
# File lib/troles/storage/bit_many.rb, line 48 def bitmask @bitmask ||= bitmask_class.new role_subject end
bitmask_class()
click to toggle source
# File lib/troles/storage/bit_many.rb, line 52 def bitmask_class Troles::Common::Marshaller::Bitmask end