Sha256: e0a0edea6f5c6c4299145203400c87823c308540b59df4e46f787db80cd61360

Contents?: true

Size: 840 Bytes

Versions: 1

Compression:

Stored size: 840 Bytes

Contents

module Roles::Base
  def valid_roles_are(*role_list)
    strategy_class.valid_roles = role_list.to_symbols
    if role_class_name
      role_list.each do |name| 
        begin
          role_class_name.create(:name => name.to_s)
        rescue
        end
      end
    end
  end
end

class Role
  include Mongoid::Document
  field :name, :type => String
  # references_many :users

  # references_many :users, :class_name => 'User', :stored_as => :array  

  validates_uniqueness_of :name

  class << self
    def find_roles(*role_names)
      where(:name.in => role_names.flatten).to_a
    end

    def find_role role_name
      raise ArgumentError, "#find_role takes a single role name as argument, not: #{role_name.inspect}" if !role_name.kind_of_label?
      res = find_roles(role_name)
      res ? res.first : res
    end
  end
end  

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
roles_mongoid-0.3.5 lib/roles_mongoid/role.rb