diff options
author | icebaker <icebaker@proton.me> | 2024-01-10 21:31:42 -0300 |
---|---|---|
committer | icebaker <icebaker@proton.me> | 2024-01-10 21:31:42 -0300 |
commit | aabf3d9b711f66fe4195a8c850856826c7ad5580 (patch) | |
tree | 866218debc763547818de0099098bc5fe2ae29c7 /logic/helpers | |
parent | 552c9c7321895d41f81e460b94182b7a00d2cb88 (diff) |
improving merging approach
Diffstat (limited to 'logic/helpers')
-rw-r--r-- | logic/helpers/hash.rb | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/logic/helpers/hash.rb b/logic/helpers/hash.rb index 4cb44ac..66b6742 100644 --- a/logic/helpers/hash.rb +++ b/logic/helpers/hash.rb @@ -4,6 +4,16 @@ module NanoBot module Logic module Helpers module Hash + def self.deep_merge(hash1, hash2) + hash1.merge(hash2) do |_key, old_val, new_val| + if old_val.is_a?(::Hash) && new_val.is_a?(::Hash) + deep_merge(old_val, new_val) + else + new_val + end + end + end + def self.symbolize_keys(object) case object when ::Hash |