module Attributor::Container::ClassMethods
Public Instance Methods
decode_json(value, context = Attributor::DEFAULT_ROOT_CONTEXT)
click to toggle source
Decode JSON string that encapsulates an array
@param value [String] JSON string @return [Array] a normal Ruby Array
# 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)
click to toggle source
# 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