Class: FunWithJsonApi::PreDeserializer
- Inherits:
-
Object
- Object
- FunWithJsonApi::PreDeserializer
- Defined in:
- lib/fun_with_json_api/pre_deserializer.rb
Overview
Converts a json_api document into a rails compatible hash. Acts as an adaptor for ActiveModuleSerializer deserializer classes
Instance Attribute Summary collapse
-
#deserializer ⇒ Object
readonly
Returns the value of attribute deserializer.
-
#document ⇒ Object
readonly
Returns the value of attribute document.
Class Method Summary collapse
Instance Method Summary collapse
-
#initialize(document, deserializer) ⇒ PreDeserializer
constructor
A new instance of PreDeserializer.
- #parse ⇒ Object
Constructor Details
#initialize(document, deserializer) ⇒ PreDeserializer
Returns a new instance of PreDeserializer.
15 16 17 18 |
# File 'lib/fun_with_json_api/pre_deserializer.rb', line 15 def initialize(document, deserializer) @document = document.to_h.deep_dup.deep_stringify_keys @deserializer = deserializer end |
Instance Attribute Details
#deserializer ⇒ Object (readonly)
Returns the value of attribute deserializer.
13 14 15 |
# File 'lib/fun_with_json_api/pre_deserializer.rb', line 13 def deserializer @deserializer end |
#document ⇒ Object (readonly)
Returns the value of attribute document.
12 13 14 |
# File 'lib/fun_with_json_api/pre_deserializer.rb', line 12 def document @document end |
Class Method Details
.parse(document, deserializer) ⇒ Object
8 9 10 |
# File 'lib/fun_with_json_api/pre_deserializer.rb', line 8 def self.parse(document, deserializer) new(document, deserializer).parse end |
Instance Method Details
#parse ⇒ Object
20 21 22 23 24 25 26 27 |
# File 'lib/fun_with_json_api/pre_deserializer.rb', line 20 def parse ams_deserializer_class.parse(document, ams_deserializer_config) do |invalid_document, reason| = "Invalid payload (#{reason}): #{invalid_document}" exception = convert_reason_into_exceptions(, reason).first || Exceptions::InvalidDocument.new() raise exception end end |