class ActiveMongoid::Associations::RecordRelation::Referenced::In

Public Class Methods

new(base, target, metadata) click to toggle source
# File lib/active_mongoid/associations/record_relation/referenced/in.rb, line 7
def initialize(base, target, metadata)
  init(base, target, metadata) do
    bind_one
  end
end

Private Class Methods

builder(base, meta, object) click to toggle source
# File lib/active_mongoid/associations/record_relation/referenced/in.rb, line 58
def builder(base, meta, object)
  ActiveMongoid::Associations::Builders::In.new(base, meta, object)
end
criteria(metadata, object, type = nil) click to toggle source
# File lib/active_mongoid/associations/record_relation/referenced/in.rb, line 62
def criteria(metadata, object, type = nil)
  type.where(metadata.primary_key => object)
end
foreign_key(name) click to toggle source
# File lib/active_mongoid/associations/record_relation/referenced/in.rb, line 38
def foreign_key(name)
  "#{name}#{foreign_key_suffix}"
end
foreign_key_default() click to toggle source
# File lib/active_mongoid/associations/record_relation/referenced/in.rb, line 42
def foreign_key_default
  nil
end
foreign_key_suffix() click to toggle source
# File lib/active_mongoid/associations/record_relation/referenced/in.rb, line 46
def foreign_key_suffix
  "_id"
end
macro() click to toggle source
# File lib/active_mongoid/associations/record_relation/referenced/in.rb, line 54
def macro
  :belongs_to_record
end
primary_key_default() click to toggle source
# File lib/active_mongoid/associations/record_relation/referenced/in.rb, line 50
def primary_key_default
  "id"
end
stores_foreign_key?() click to toggle source
# File lib/active_mongoid/associations/record_relation/referenced/in.rb, line 34
def stores_foreign_key?
  true
end

Public Instance Methods

substitute(replacement) click to toggle source
# File lib/active_mongoid/associations/record_relation/referenced/in.rb, line 13
def substitute(replacement)
  unbind_one
  return nil unless replacement
  self.target = normalize(replacement)
  bind_one
  self
end

Private Instance Methods

binding() click to toggle source
# File lib/active_mongoid/associations/record_relation/referenced/in.rb, line 23
def binding
  Bindings::In.new(base, target, __metadata__)
end
normalize(replacement) click to toggle source
# File lib/active_mongoid/associations/record_relation/referenced/in.rb, line 27
def normalize(replacement)
  return replacement if replacement.is_a?(::ActiveRecord::Base)
  __metadata__.builder(klass, replacement).build
end