Sha256: 270a0217180b5b5cc21432de6526cf9dbf5e0288f6b3635f7c73b87e2b9bb5fd
Contents?: true
Size: 1.61 KB
Versions: 164
Compression:
Stored size: 1.61 KB
Contents
# encoding: utf-8 module Mongoid #:nodoc: module Fields #:nodoc: module Internal #:nodoc: module ForeignKeys #:nodoc: # Defines the behaviour for integer foreign key fields. class Object include Serializable # Is the field a BSON::ObjectId? # # @example Is the field a BSON::ObjectId? # field.object_id_field? # # @return [ true, false ] If the field is a BSON::ObjectId. # # @since 2.2.0 def object_id_field? @object_id_field ||= metadata.polymorphic? ? true : metadata.klass.using_object_ids? end # Serialize the object from the type defined in the model to a MongoDB # compatible object to store. # # @example Serialize the field. # field.serialize(object) # # @param [ Object ] object The object to cast. # # @return [ Array ] The converted object. # # @since 2.1.0 def serialize(object) return nil if object.blank? if object_id_field? constraint.convert(object) else case object when ::Array object.replace(object.map { |arg| serialize(arg) }) when ::Hash object.each_pair do |key, value| object[key] = serialize(value) end else metadata.klass.fields["_id"].serialize(object) end end end end end end end end
Version data entries
164 entries across 72 versions & 3 rubygems