Method: Attributor::Hash.load

Defined in:
lib/attributor/types/hash.rb

.load(value, context = Attributor::DEFAULT_ROOT_CONTEXT, recurse: false, **_options) ⇒ Object



273
274
275
276
277
278
279
280
281
282
283
# File 'lib/attributor/types/hash.rb', line 273

def self.load(value, context = Attributor::DEFAULT_ROOT_CONTEXT, recurse: false, **_options)

  return value if value.is_a?(self)
  return nil if value.nil? && !recurse

  context = Array(context)
  loaded_value = self.parse(value, context)

  return from_hash(loaded_value, context, recurse: recurse) if keys.any?
  load_generic(loaded_value, context)
end