Sha256: 68197edc828c40e70e0204fdd62ad9892abd28e881cebb653a1f229a47c602b7

Contents?: true

Size: 1.07 KB

Versions: 1

Compression:

Stored size: 1.07 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        
      found_roles = find_roles(*roles)
      set_ds_field found_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

1 entries across 1 versions & 1 rubygems

Version Path
troles-0.5.0 lib/troles/storage/ref_many.rb