class Findable::Query::Serializer

Public Class Methods

new(serializer = nil) click to toggle source
# File lib/findable/query/serializer.rb, line 4
def initialize(serializer = nil)
  @serializer = serializer || Findable.config.serializer
end

Public Instance Methods

deserialize(raw_data, klass = nil) click to toggle source

@params raw_data [String] Serialized string @params raw_data [Array<String>] Array of serialized string @return [ActiveSupport::HashWithIndifferentAccess] @return [Array<ActiveSupport::HashWithIndifferentAccess>]

# 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) click to toggle source
# File lib/findable/query/serializer.rb, line 8
def serialize(object)
  @serializer.dump(object)
end