class Triglav::Agent::HashUtil
Public Class Methods
deep_stringify_keys(obj)
click to toggle source
# File lib/triglav/agent/hash_util.rb, line 14 def self.deep_stringify_keys(obj) case obj when Hash obj.map {|k, v| [k.to_s, deep_stringify_keys(v)] }.to_h when Array obj.map {|v| deep_stringify_keys(v) } else obj end end
deep_symbolize_keys(obj)
click to toggle source
# File lib/triglav/agent/hash_util.rb, line 3 def self.deep_symbolize_keys(obj) case obj when Hash obj.map {|k, v| [k.to_sym, deep_symbolize_keys(v)] }.to_h when Array obj.map {|v| deep_symbolize_keys(v) } else obj end end
setdig(hash, key, val)
click to toggle source
HashUtil.setdig
(hash, ['a', 'b'], 'bar') # like hash['b'] = 'bar'
# File lib/triglav/agent/hash_util.rb, line 26 def self.setdig(hash, key, val) keys = Array(key) sub_hash = hash keys[0...-1].each do |k| sub_hash = (sub_hash[k] ||= {}) end sub_hash[keys.last] = val hash end