Sha256: e95bf6eefea3a9f3e90ce766040beb0c36ab94792207031cbf10227be4327a35

Contents?: true

Size: 1.03 KB

Versions: 4

Compression:

Stored size: 1.03 KB

Contents

# @author Kristian Mandrup
# 
# Many role storage for storing multiple Role references on the role subject
#
# @note all methods potentially operate directly on values in the data store
#
module Troles::Storage
  class RefMany < BaseMany
    def initialize role_subject
      super
    end

    # display the roles as a list of symbols
    # @return [Array<Symbol>] roles list
    def display_roles
      return [] if !ds_field_value?
      ds_field_value.flatten.map do |role| 
        role.name.to_sym 
      end
    end

    # is it set?
    def ds_field_value?
      ds_field_value && !ds_field_value.empty?
    end      
    
    # saves the role for the user in the data store
    def set_roles *roles
      # finds and sets references to existing Role instances from symbols
      set_ds_field find_roles(*roles)
    end  

    # clears the role of the user in the data store
    def clear!
      set_ds_field []
    end
    
    # sets the role to default setting
    def set_default_role!
      clear!
    end                            
  end
end

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
troles-0.6.1 lib/troles/storage/ref_many.rb
troles-0.6.0 lib/troles/storage/ref_many.rb
troles-0.5.2 lib/troles/storage/ref_many.rb
troles-0.5.1 lib/troles/storage/ref_many.rb