Class: Findable::Query::Serializer

Inherits:
Object
  • Object
show all
Defined in:
lib/findable/query/serializer.rb

Instance Method Summary collapse

Constructor Details

#initialize(serializer = nil) ⇒ Serializer

Returns a new instance of Serializer.



4
5
6
# File 'lib/findable/query/serializer.rb', line 4

def initialize(serializer = nil)
  @serializer = serializer || Findable.config.serializer
end

Instance Method Details

#deserialize(raw_data, klass = nil) ⇒ ActiveSupport::HashWithIndifferentAccess+

Returns:

  • (ActiveSupport::HashWithIndifferentAccess)
  • (Array<ActiveSupport::HashWithIndifferentAccess>)


16
17
18
19
20
21
22
23
# File 'lib/findable/query/serializer.rb', line 16

def deserialize(raw_data, klass = nil)
  objects = Array(raw_data).compact.map {|data|
    object = @serializer.load(data)
    object = object.with_indifferent_access if object.is_a?(Hash)
    klass ? klass.new(object) : object
  }
  raw_data.is_a?(String) ? objects.first : objects
end

#serialize(object) ⇒ Object



8
9
10
# File 'lib/findable/query/serializer.rb', line 8

def serialize(object)
  @serializer.dump(object)
end