module Mongoid::Association::Nested::Buildable

Attributes

association[RW]
attributes[RW]
existing[RW]
options[RW]

Public Instance Methods

allow_destroy?() click to toggle source

Determines if destroys are allowed for this document.

@example Do we allow a destroy?

builder.allow_destroy?

@return [ true, false ] True if the allow destroy option was set.

@since 2.0.0.rc.1

# File lib/mongoid/association/nested/nested_buildable.rb, line 19
def allow_destroy?
  options[:allow_destroy] || false
end
convert_id(klass, id) click to toggle source

Convert an id to its appropriate type.

@example Convert the id.

builder.convert_id(Person, "4d371b444835d98b8b000010")

@param [ Class ] klass The class we’re trying to convert for. @param [ String ] id The id, usually coming from the form.

@return [ BSON::ObjectId, String, Object ] The converted id.

@since 2.0.0.rc.6

# File lib/mongoid/association/nested/nested_buildable.rb, line 69
def convert_id(klass, id)
  klass.using_object_ids? ? BSON::ObjectId.mongoize(id) : id
end
reject?(document, attrs) click to toggle source

Returns the reject if option defined with the macro.

@example Is there a reject proc?

builder.reject?

@param [ Document ] document The parent document of the association @param [ Hash ] attrs The attributes to check for rejection.

@return [ true, false ] True and call proc or method if rejectable, false if not.

@since 2.0.0.rc.1

# File lib/mongoid/association/nested/nested_buildable.rb, line 34
def reject?(document, attrs)
  case callback = options[:reject_if]
    when Symbol
      document.method(callback).arity == 0 ? document.send(callback) : document.send(callback, attrs)
    when Proc
      callback.call(attrs)
    else
      false
  end
end
update_only?() click to toggle source

Determines if only updates can occur. Only valid for one-to-one associations.

@example Is this update only?

builder.update_only?

@return [ true, false ] True if the update_only option was set.

@since 2.0.0.rc.1

# File lib/mongoid/association/nested/nested_buildable.rb, line 54
def update_only?
  options[:update_only] || false
end