34
35
36
37
38
39
40
41
42
43
44
45
|
# File 'lib/active_serialize.rb', line 34
def to_h(*groups, rmv: [ ], add: [ ], flat_add: [ ], recursive: [ ], plucked: { }, merge: { })
recursion = (_active_serialize[:recursive] + recursive).map { |k| [ k, public_send(k)&.to_ha(*groups) ] }.to_h
merge.merge!(flat_add.map(&method(:public_send)).reduce({ }, :merge)) if flat_add.present?
KeyFormatter.(_active_serialize[:key_format],
active_serialize_keys(*groups, rmv: rmv, add: add)
.map { |key| [ key, public_send(key) ] }.to_h
.merge(plucked).merge(recursion).merge(merge)
.transform_keys { |key| _active_serialize[:map][key] || key }
.deep_stringify_keys!
)
end
|