Sha256: ea2a11a544c7f9468dd3f16e8404f2a94da92cae1b04fb8ed711886213670688

Contents?: true

Size: 967 Bytes

Versions: 23

Compression:

Stored size: 967 Bytes

Contents

require 'mongoid'

Mongoid.configure do |config|
  config.master = Mongo::Connection.new.db('testing')
end

Mongoid.database.collections.each do |coll|
  coll.remove
end


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

  class << self
    def find_roles(*role_names)
      where(:name.in => role_names.flatten).to_a #.map(&:_id)
    end
    alias_method :find_role, :find_roles
  end
end

module Blip 
  def self.included(base)
    base.extend ClassMethods
  end 

  module ClassMethods  
    def do_it
      instance_eval "references_many :many_roles, :stored_as => :array, :class_name => 'Role'"
    end
  end
end  

class User 
  include Mongoid::Document  
  include Blip
  field :name, :type => String  

  do_it 
  
end

Role.create :name => 'guest'
Role.create :name => 'admin'

user = User.create :name => 'Kristian'

user.many_roles << Role.find_role(:guest)
user.many_roles << Role.find_role(:admin)

puts user.many_roles.inspect

Version data entries

23 entries across 23 versions & 4 rubygems

Version Path
roles_mongoid-0.4.8 sandbox/roles_assign.rb
mongoid_roles_zhd-0.1 sandbox/roles_assign.rb
roles_mongoid_zhd-0.4.8.1 sandbox/roles_assign.rb
roles_mongoid_zhd-0.4.8 sandbox/roles_assign.rb
roles_mongoid-0.4.7 sandbox/roles_assign.rb
roles_mongoid-0.4.6 sandbox/roles_assign.rb
roles_mongoid-0.4.5 sandbox/roles_assign.rb
roles_mongoid-0.4.4 sandbox/roles_assign.rb
roles_mongoid-0.4.3 sandbox/roles_assign.rb
roles_mongoid-0.4.2 sandbox/roles_assign.rb
roles_mongoid-0.4.1 sandbox/roles_assign.rb
roles_mongoid-0.4.0 sandbox/roles_assign.rb
roles_mongoid-0.3.6 sandbox/roles_assign.rb
roles_mongoid-0.3.5 sandbox/roles_assign.rb
roles_mongoid-0.3.4 sandbox/roles_assign.rb
roles_mongoid-0.3.3 sandbox/roles_assign.rb
roles_mongoid-0.3.2 sandbox/roles_assign.rb
roles_mongoid-0.3.1 sandbox/roles_assign.rb
roles_mongoid-0.2.4 sandbox/roles_assign.rb
roles_for_mongoid-0.2.3 sandbox/roles_assign.rb