Sha256: ffa9e8a80364f7ffe5065c4e277983c869bf7ba489a568cf3bdd713356bc80ae

Contents?: true

Size: 868 Bytes

Versions: 5

Compression:

Stored size: 868 Bytes

Contents

require 'roles_data_mapper/strategy/shared'

class Symbol
  def admin?
    self == :admin
  end
end

module Roles::DataMapper
  module Strategy
    module Single
      include Shared            
      # assigns first valid role from list of roles
      def add_roles *role_names
        new_roles = select_valid_roles(role_names) 
        new_role = new_roles.first if !new_roles.empty?
        set_role new_role
      end

      # should remove the current single role (set = nil) 
      # only if it is contained in the list of roles to be removed
      def remove_roles *role_names
        roles = role_names.flat_uniq
        set_empty_role if roles_diff(roles).empty?
        true
      end 
      
      def roles_list
        raise 'the method #roles should be present' if !respond_to? :roles
        present_roles(roles)
      end            
    end
  end
end

Version data entries

5 entries across 5 versions & 1 rubygems

Version Path
roles_data_mapper-0.3.1 lib/roles_data_mapper/strategy/single.rb
roles_data_mapper-0.3.0 lib/roles_data_mapper/strategy/single.rb
roles_data_mapper-0.2.2 lib/roles_data_mapper/strategy/single.rb
roles_data_mapper-0.2.1 lib/roles_data_mapper/strategy/single.rb
roles_data_mapper-0.2.0 lib/roles_data_mapper/strategy/single.rb