我有一个从ruby脚本生成的文件,它使用hashie gem将哈希转换为mash,如下所示
config.ip_details.ip_one.pub.heartbeat.ip1 |"198.18.0.2"|
config.vpc.vms.vse_pub.heartbeat.netmask |"255.255.255.252"|
我想读取文件并需要将Mash的字符串转换为Hash,是否可以在hashie gem中使用任何方法将mash的字符串转换为hash?
答案 0 :(得分:4)
你可以在Mash对象上调用to_hash
method来获取哈希值。
require "hashie"
hash = {:b => 23, :d => {:e => "abc"}}
mash = Hashie::Mash.new(hash)
p mash
#=> #<Hashie::Mash b=23 d=#<Hashie::Mash e="abc">>
p mash.to_hash
#=> {"b"=>23, "d"=>{"e"=>"abc"}}
要从文件(YAML)创建Mash
对象,您可以使用Mash#load
method:
mash = Hashie::Mash.load("sample.yml")