使用ruby和rake编辑yaml hashmap
我有一个yaml谁的元素需要由用户填写。。。听起来很简单。我正在尝试读取文件、打印密钥、请求值并存储更新的文件 cnfg.yml:使用ruby和rake编辑yaml hashmap,ruby,hash,hashmap,rake,Ruby,Hash,Hashmap,Rake,我有一个yaml谁的元素需要由用户填写。。。听起来很简单。我正在尝试读取文件、打印密钥、请求值并存储更新的文件 cnfg.yml: thing: something: another_thing: much_depth: such_yml: ... 以下是我迄今为止的代码: task :setup_cnfg do config = YAML.load_file 'cnfg.yml' config.each do |key, value| puts key
thing:
something:
another_thing:
much_depth:
such_yml:
...
以下是我迄今为止的代码:
task :setup_cnfg do
config = YAML.load_file 'cnfg.yml'
config.each do |key, value|
puts key
value.each do |k, v|
print " #{k}: "
v = STDIN.gets.chomp() #STDIN is there due to some strange rake shenanigans
end
end
File.open('cnfg.yml','w') {|f| f.write config.to_yaml}
end
如果我在捕获输入后打印“v”,它确实会显示预期值,但如果我打印哈希后缀,所有插补值都将消失
要正确填充和存储所有数据字段,我该怎么做?您应该实际将新的v
分配回值
散列:
task :setup_cnfg do
config = YAML.load_file 'cnfg.yml'
config.each do |key, value|
puts key
value.each do |k, _|
print " #{k}: "
value[k] = STDIN.gets.chomp()
end
end
File.open('cnfg.yml','w') {|f| f.write config.to_yaml}
end