Sha256: 534f9eccdf6f431bc61e6df3e1cec3f38e08ae2e88598f95b6c7f87a5e19e370

Contents?: true

Size: 1.47 KB

Versions: 18

Compression:

Stored size: 1.47 KB

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
  references_many :users #one_role, :class_name => 'Role'

  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_one :role" # :class_name => 'Role'
    end
  end
end  

class User 
  include Mongoid::Document  
  # include Blip
  field :name, :type => String  
  referenced_in :one_role, :class_name =>  'Role'
  
  # do_it   
end

user = User.create :name => 'Sandy'
user2 = User.create :name => 'Mike'
role = Role.create :name => 'Guest'
role2 = Role.create :name => 'Admin'

user.save
user2.save

user.one_role = role2 #<< [role, role2]
role.users << [user, user2]
user2.one_role = role

# role.users << user
# role.users << user2

role.save 

puts "user: #{user.inspect}"
puts "user2 #{user2.inspect}"
puts "role: #{role.inspect}"  
puts "role users: #{role.users.to_a.inspect}"  


# Role.create :name => 'guest'
# Role.create :name => 'admin'
# 
# user = User.create :name => 'Kristian'
# 
# 
# user.role.create :name => :guest
# user.save

# user.role = Role.find_role(:guest).first
# user.save



Version data entries

18 entries across 18 versions & 3 rubygems

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