Module: Mongoid::Criteria::Marshalable
- Included in:
- Mongoid::Criteria
- Defined in:
- lib/mongoid/criteria/marshalable.rb
Overview
Mixin module for Mongoid::Criteria which adds custom Marshal.dump functionality.
Instance Method Summary collapse
-
#marshal_dump ⇒ Array<Object>
Provides the data needed to Marshal.dump a criteria.
-
#marshal_load(data) ⇒ Object
Resets the criteria object after a Marshal.load.
Instance Method Details
#marshal_dump ⇒ Array<Object>
Provides the data needed to Marshal.dump a criteria.
Note :mongo is written here for backwards compatibility with Mongoid 7 and earlier.
17 18 19 20 |
# File 'lib/mongoid/criteria/marshalable.rb', line 17 def marshal_dump data = [ klass, :mongo, inclusions, documents, strategy, negating, use_lookup? ] data.push().push(dump_hash(:selector)).push(dump_hash(:options)) end |
#marshal_load(data) ⇒ Object
Resets the criteria object after a Marshal.load
28 29 30 31 32 33 34 35 36 37 38 |
# File 'lib/mongoid/criteria/marshalable.rb', line 28 def marshal_load(data) @scoping_options, raw_selector, = data.pop(3) @klass, driver, @inclusions, @documents, @strategy, @negating, @use_lookup = data if driver == :mongo1x raise NotImplementedError, 'Mongoid no longer supports marshalling with driver version 1.x.' end @selector = load_hash(Queryable::Selector, raw_selector) @options = load_hash(Queryable::Options, ) end |