Module: Attributor::Container::ClassMethods
- Defined in:
- lib/attributor/types/container.rb
Instance Method Summary collapse
-
#decode_json(value, context = Attributor::DEFAULT_ROOT_CONTEXT) ⇒ Array
Decode JSON string that encapsulates an array.
- #decode_string(_value, context = Attributor::DEFAULT_ROOT_CONTEXT) ⇒ Object
Instance Method Details
#decode_json(value, context = Attributor::DEFAULT_ROOT_CONTEXT) ⇒ Array
Decode JSON string that encapsulates an array
21 22 23 24 25 26 27 28 29 30 31 32 33 |
# File 'lib/attributor/types/container.rb', line 21 def decode_json(value, context = Attributor::DEFAULT_ROOT_CONTEXT) raise Attributor::DeserializationError.new(context: context, from: value.class, encoding: 'JSON', value: value) unless value.is_a? ::String # attempt to parse as JSON parsed_value = JSON.parse(value) unless valid_type?(parsed_value) raise Attributor::CoercionError.new(context: context, from: parsed_value.class, to: name, value: parsed_value) end parsed_value rescue JSON::JSONError raise Attributor::DeserializationError.new(context: context, from: value.class, encoding: 'JSON', value: value) end |
#decode_string(_value, context = Attributor::DEFAULT_ROOT_CONTEXT) ⇒ Object
12 13 14 |
# File 'lib/attributor/types/container.rb', line 12 def decode_string(_value, context = Attributor::DEFAULT_ROOT_CONTEXT) raise "#{name}.decode_string is not implemented. (when decoding #{Attributor.humanize_context(context)})" end |