我有一个YML文件
e_yml:
a: https://www.google.com:8201/jde/
我在大多数测试用例中使用写入和读取YML文件方法
但是由于上面的方法只限于3个键和更多的硬编码,为了更通用我正在尝试这个逻辑 这里输出它只是将'value'写入YML文件
不是更新key[a]
,而是仅将值覆盖为YML。
有人可以帮我更新密钥吗?
答案 0 :(得分:1)
将值写入散列的深层嵌套键。
def deep_write(hash, value, *keys)
hash.tap do |h|
keys[0...-1].inject(h) { |h, k| h[k] ||= {} }[keys.last] = value
end
end
hash = {}
deep_write(hash, '5678234', 'jde_env', 'py')
#⇒ { "jde_env" => { "py" => "5678234" } }
def write(filename, value, *args)
data = DataMagic.load(filename)
File.write(
File.join(YML_DIR_PATH, filename),
deep_write(data, value, *args).to_yaml
)
end