Sha256: 7cabeaf5e2fe2036244384a7ffdc68eda357f379e67b31c62aa383cf5ab6ee6a
Contents?: true
Size: 1.56 KB
Versions: 2
Compression:
Stored size: 1.56 KB
Contents
# encoding: UTF-8 module MongoMapper module EmbeddedDocument extend Support::DescendantAppends def self.included(model) model.class_eval do include InstanceMethods extend ClassMethods extend Plugins plugin Plugins::Associations plugin Plugins::Clone plugin Plugins::Descendants plugin Plugins::Equality plugin Plugins::Inspect plugin Plugins::Keys plugin Plugins::Logger plugin Plugins::Persistence plugin Plugins::Protected plugin Plugins::Rails plugin Plugins::Serialization plugin Plugins::Validations plugin Plugins::Callbacks attr_reader :_root_document, :_parent_document end super end module ClassMethods def embeddable? true end def embedded_in(owner_name) define_method(owner_name) { _parent_document } end end module InstanceMethods def destroyed? !!_root_document.try(:destroyed?) end def new? _root_document.try(:new?) || @new end def save(options={}) if result = _root_document.try(:save, options) @new = false end result end def save!(options={}) if result = _root_document.try(:save!, options) @new = false end result end def _parent_document=(value) @_root_document = value._root_document @_parent_document = value end end # InstanceMethods end # EmbeddedDocument end # MongoMapper
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
mongo_mapper_ign-0.7.7 | lib/mongo_mapper/embedded_document.rb |
mongo_mapper_ign-0.7.6 | lib/mongo_mapper/embedded_document.rb |