class Trole::Storage::StringOne

Public Class Methods

new(role_subject) click to toggle source

constructor @param [Symbol] the role subject

Calls superclass method Trole::Storage::BaseOne::new
# File lib/trole/storage/string_one.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/trole/storage/string_one.rb, line 46
def clear!
  set_ds_field ""
end
display_roles() click to toggle source

display the role as a list of one symbol see Troles::Marshaller::Bitmask

@return [Array<Symbol>] roles list display the role as a list of one symbol @return [Array<Symbol>] roles list

# File lib/trole/storage/string_one.rb, line 20
def display_roles
  return [] if ds_field_value?
  [ds_field_value.to_sym]
end
ds_field_value?() click to toggle source

is it set?

# File lib/trole/storage/string_one.rb, line 26
def ds_field_value?
  ds_field_value && !!ds_field_value.empty?
end
set_role(role) click to toggle source

saves the role of the role subject in the data store @param [Symbol] the role name

# File lib/trole/storage/string_one.rb, line 41
def set_role role
  set_ds_field role.to_s
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/trole/storage/string_one.rb, line 33
def set_roles *roles
  roles = roles.flatten
  raise ArgumentError, "For a single role strategy you can only set one role, was: #{roles.flatten}" if roles.empty? || (roles.size > 1)
  set_role roles.first
end