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