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