Class: Trole::Storage::BaseOne

Inherits:
Troles::Common::Storage show all
Defined in:
lib/trole/storage/base_one.rb

Direct Known Subclasses

BitOne, EmbedOne, RefOne, StringOne

Instance Attribute Summary

Attributes inherited from Troles::Common::Storage

#role_subject

Instance Method Summary collapse

Methods inherited from Troles::Common::Storage

#ds_field_name, #ds_field_value, #name, #persist_role_changes!, #set_ds_field, #valid_roles

Constructor Details

#initialize(role_subject) ⇒ BaseOne

constructor

Parameters:

  • the (Symbol)

    role subject



12
13
14
# File 'lib/trole/storage/base_one.rb', line 12

def initialize role_subject
  super
end

Instance Method Details

#find_role(role) ⇒ Role

get Role instance by name

Parameters:

  • list (Symbol)

    of role names to find Roles for

Returns:

  • (Role)

    reference to Role instances

Raises:

  • (ArgumentError)


19
20
21
22
# File 'lib/trole/storage/base_one.rb', line 19

def find_role role
  raise ArgumentError, "Must be a role label" if !role.kind_of_label?
  role_model.where(:name => role.to_s)
end

#role_modelObject



31
32
33
# File 'lib/trole/storage/base_one.rb', line 31

def role_model
  role_subject.class.troles_config.role_model
end

#role_to_embedArray<Role>

get embedded Role instances

Parameters:

  • list (Array<Symbol>)

    of role names

Returns:

  • (Array<Role>)

    Role instances generated



27
28
29
# File 'lib/trole/storage/base_one.rb', line 27

def role_to_embed
  raise "Must be implemented by embed storage to generate a set of roles to embed"
end

#set_default_role!Object

sets the role to its default state



42
43
44
# File 'lib/trole/storage/base_one.rb', line 42

def set_default_role!
  clear!
end

#set_roles(*roles) ⇒ Object

saves the role for the user in the data store

Raises:

  • (ArgumentError)


36
37
38
39
# File 'lib/trole/storage/base_one.rb', line 36

def set_roles *roles
  raise ArgumentError, "A single role strategy can only allow setting a single role, was: #{roles}" if (roles.size > 1)
  set_role roles.flat_uniq.first
end