Class: JSONApi::Deserializer

Inherits:
Object
  • Object
show all
Defined in:
lib/jsonapi_deserializer.rb,
lib/jsonapi_deserializer/version.rb,
lib/jsonapi_deserializer/configuration.rb

Defined Under Namespace

Classes: Assocation, Configuration, Record, Store

Constant Summary collapse

VERSION =
"1.3.1"

Class Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(response) ⇒ Deserializer

Returns a new instance of Deserializer.



63
64
65
66
67
68
69
70
# File 'lib/jsonapi_deserializer.rb', line 63

def initialize(response)
  @response = response.is_a?(Hash) ? response.with_indifferent_access : response
  @store = Store.new

  all_data = ([] << @response[:data] << @response[:included]).flatten.compact
  store_records(all_data)
  build_associations(all_data)
end

Class Attribute Details

.configurationObject

Returns the value of attribute configuration.



4
5
6
# File 'lib/jsonapi_deserializer/configuration.rb', line 4

def configuration
  @configuration
end

Class Method Details

.configure {|configuration| ... } ⇒ Object

Yields:



11
12
13
# File 'lib/jsonapi_deserializer/configuration.rb', line 11

def self.configure
  yield(configuration)
end

Instance Method Details

#deserialized_hashObject



72
73
74
75
76
77
78
79
80
# File 'lib/jsonapi_deserializer.rb', line 72

def deserialized_hash
  data = @response[:data]

  if data.is_a? Array
    data.map { |datum| @store.get(datum[:type], datum[:id], datum[:lid]) }
  else
    @store.get(data[:type], data[:id], data[:lid])
  end
end