Sha256: e6f07bc19e1b38a09561a62c9704d4ac74d49554451ad595626d8a3dc3e93192

Contents?: true

Size: 1.13 KB

Versions: 15

Compression:

Stored size: 1.13 KB

Contents

require 'roles_mongoid/strategy/multi'

module RoleStrategy::Mongoid
  module RoleStrings    
    def self.default_role_attribute
      :role_strings
    end    

    def self.included base
      base.extend ClassMethods
    end

    module ClassMethods
      def role_attribute
        strategy_class.roles_attribute_name.to_sym
      end 

      def in_role(role_name)  
        in_any_role(role_name)
      end

      def in_any_role(*role_names)
        begin
          where(role_attribute.in => role_names).to_a      
        rescue
          return []
        end
      end  
    end
    
    module Implementation 
      include Roles::Mongoid::Strategy::Multi
      
      def new_roles *roles
        ::Set.new select_valid_roles(roles)
      end      

      def select_valid_roles *roles
        roles.flat_uniq.select{|role| valid_role? role }.map(&:to_sym)
      end                 
      
      def set_empty_roles
        self.send("#{role_attribute}=", [])
      end   

      def present_roles roles_names
        roles_names.to_a
      end
    end

    extend Roles::Generic::User::Configuration
    configure            
  end
end

Version data entries

15 entries across 15 versions & 2 rubygems

Version Path
roles_mongoid-0.4.8 lib/roles_mongoid/strategy/multi/role_strings.rb
roles_mongoid_zhd-0.4.8 lib/roles_mongoid/strategy/multi/role_strings.rb
roles_mongoid-0.4.7 lib/roles_mongoid/strategy/multi/role_strings.rb
roles_mongoid-0.4.6 lib/roles_mongoid/strategy/multi/role_strings.rb
roles_mongoid-0.4.5 lib/roles_mongoid/strategy/multi/role_strings.rb
roles_mongoid-0.4.4 lib/roles_mongoid/strategy/multi/role_strings.rb
roles_mongoid-0.4.3 lib/roles_mongoid/strategy/multi/role_strings.rb
roles_mongoid-0.4.2 lib/roles_mongoid/strategy/multi/role_strings.rb
roles_mongoid-0.4.1 lib/roles_mongoid/strategy/multi/role_strings.rb
roles_mongoid-0.4.0 lib/roles_mongoid/strategy/multi/role_strings.rb
roles_mongoid-0.3.6 lib/roles_mongoid/strategy/multi/role_strings.rb
roles_mongoid-0.3.5 lib/roles_mongoid/strategy/multi/role_strings.rb
roles_mongoid-0.3.4 lib/roles_mongoid/strategy/multi/role_strings.rb
roles_mongoid-0.3.3 lib/roles_mongoid/strategy/multi/role_strings.rb
roles_mongoid-0.3.2 lib/roles_mongoid/strategy/multi/role_strings.rb