class Troles::Storage::EmbedMany

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/embed_many.rb, line 12
def initialize role_subject
  super
end

Public Instance Methods

clear!() click to toggle source

clears the role of the user in the data store

# File lib/troles/storage/embed_many.rb, line 43
def clear!
  set_ds_field []
end
display_roles() click to toggle source

display the roles as a list of symbols @return [Array<Symbol>] roles list

# File lib/troles/storage/embed_many.rb, line 25
def display_roles
  return [] if !ds_field_value?
  ds_field_value.map{|role| role.name.to_sym }
end
ds_field_value?() click to toggle source

is it set?

# File lib/troles/storage/embed_many.rb, line 31
def ds_field_value?
  ds_field_value && !ds_field_value.empty?
end
roles_to_embed(*roles) click to toggle source
# File lib/troles/storage/embed_many.rb, line 16
def roles_to_embed *roles
  roles.flatten.inject([]) do |res, role| 
    res << create_role(role)
    res
  end
end
set_default_role!() click to toggle source

sets the role to its default state

# File lib/troles/storage/embed_many.rb, line 48
def set_default_role!
  clear!
end
set_roles(*roles) click to toggle source

saves the roles for the role subject in the data store @param [Array<Symbol>] roles list

# File lib/troles/storage/embed_many.rb, line 37
def set_roles *roles
  # creates and embeds new Role instances from symbols
  set_ds_field roles_to_embed(*roles)
end

Protected Instance Methods

create_role(name) click to toggle source
# File lib/troles/storage/embed_many.rb, line 54
def create_role name
  role_model.create name
end