Module: Workarea::Elasticsearch::Serializer
- Defined in:
- lib/workarea/elasticsearch/serializer.rb
Class Method Summary collapse
- .deserialize(source) ⇒ Object
- .deserialize_mongoid(klass, serialized) ⇒ Object
- .deserialize_object(object) ⇒ Object
- .serialize(model) ⇒ Object
- .serialize_mongoid(model) ⇒ Object
- .serialize_object(object) ⇒ Object
Class Method Details
.deserialize(source) ⇒ Object
15 16 17 18 19 20 21 22 23 |
# File 'lib/workarea/elasticsearch/serializer.rb', line 15 def deserialize(source) klass = source['model_class'].constantize if klass < Mongoid::Document deserialize_mongoid(klass, source['model']) else deserialize_object(source['model']) end end |
.deserialize_mongoid(klass, serialized) ⇒ Object
33 34 35 |
# File 'lib/workarea/elasticsearch/serializer.rb', line 33 def deserialize_mongoid(klass, serialized) Mongoid::Factory.from_db(klass, deserialize_object(serialized)) end |
.deserialize_object(object) ⇒ Object
37 38 39 |
# File 'lib/workarea/elasticsearch/serializer.rb', line 37 def deserialize_object(object) Marshal.load(Base64.decode64(object)) end |
.serialize(model) ⇒ Object
5 6 7 8 9 10 11 12 13 |
# File 'lib/workarea/elasticsearch/serializer.rb', line 5 def serialize(model) serialized = if model.is_a?(Mongoid::Document) serialize_mongoid(model) else serialize_object(model) end { 'model_class' => model.class.name, 'model' => serialized } end |
.serialize_mongoid(model) ⇒ Object
25 26 27 |
# File 'lib/workarea/elasticsearch/serializer.rb', line 25 def serialize_mongoid(model) serialize_object(model.as_document) end |
.serialize_object(object) ⇒ Object
29 30 31 |
# File 'lib/workarea/elasticsearch/serializer.rb', line 29 def serialize_object(object) Base64.encode64(Marshal.dump(object)) end |