lib/bright_serializer/inflector.rb in bright_serializer-0.2.5 vs lib/bright_serializer/inflector.rb in bright_serializer-0.3.0

- old
+ new

@@ -58,22 +58,32 @@ constant.const_get(name, false) end end end - # File active_support/core_ext/hash/keys.rb, line 156 - def deep_transform_keys_in_object!(object, &block) + # File active_support/core_ext/hash/keys.rb, line 116 + def deep_transform_keys_in_object(object, &block) case object when Hash - object.keys.each do |key| # rubocop:disable Style/HashEachMethods - value = object.delete(key) - object[yield(key)] = deep_transform_keys_in_object!(value, &block) + object.each_with_object({}) do |(key, value), result| + result[yield(key)] = deep_transform_keys_in_object(value, &block) end - object when Array - object.map! { |e| deep_transform_keys_in_object!(e, &block) } + object.map { |e| deep_transform_keys_in_object(e, &block) } else object + end + end + + # File active_support/core_ext/hash/deep_transform_values.rb, line 25 + def deep_transform_values_in_object(object, &block) + case object + when Hash + object.transform_values { |value| deep_transform_values_in_object(value, &block) } + when Array + object.map { |e| deep_transform_values_in_object(e, &block) } + else + yield(object) end end end end