Sha256: 60f44275fd84ca382da5ded1e4a78b419676691ab1460ec6432ededbedc61fce

Contents?: true

Size: 867 Bytes

Versions: 3

Compression:

Stored size: 867 Bytes

Contents

require 'roles_active_record/strategy/shared'

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

module Roles::ActiveRecord
  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

3 entries across 3 versions & 1 rubygems

Version Path
roles_active_record-0.5.1 lib/roles_active_record/strategy/single.rb
roles_active_record-0.5.0 lib/roles_active_record/strategy/single.rb
roles_active_record-0.4.9 lib/roles_active_record/strategy/single.rb