lib/active_object/hash.rb in active_object-5.8.11 vs lib/active_object/hash.rb in active_object-5.9.0

- old
+ new

@@ -1,7 +1,9 @@ # frozen_string_literal: true +require 'json' + module ActiveObject module Hash def assert_valid_keys(*valid_keys) valid_keys.flatten! @@ -101,11 +103,11 @@ keys.flatten.each { |key| delete(key) } self end def extract!(*keys) - keys.each_with_object({}) { |key, hash| hash[key] = delete(key) if has_key?(key) } + keys.each_with_object({}) { |key, hash| hash[key] = delete(key) if key?(key) } end def hmap(&block) dup.hmap!(&block) end @@ -263,9 +265,13 @@ def symbolize_and_underscore_keys! each_with_object({}) do |(key, val), options| options[(key.to_s.tr(' ', '_').underscore.to_sym rescue key) || key] = val end + end + + def to_o + JSON.parse(to_json, object_class: OpenStruct) end def transform_keys(&block) dup.transform_keys!(&block) end