【发布时间】:2012-06-15 15:33:27
【问题描述】:
我有一个文件对象指向一个空的.yml 文件。当我尝试使用YAML.load 加载此文件时,我得到false 而不是空哈希。这是预期的行为吗?
file.read 按预期返回""。
【问题讨论】:
标签: ruby ruby-1.9.3
我有一个文件对象指向一个空的.yml 文件。当我尝试使用YAML.load 加载此文件时,我得到false 而不是空哈希。这是预期的行为吗?
file.read 按预期返回""。
【问题讨论】:
标签: ruby ruby-1.9.3
这可能是因为YAML.parse("") 返回false。所以我想这是预期的行为。
【讨论】:
您可以修改load_file函数如下:
代替
data_hash = YAML.load_file(yaml_file)
到
data_hash = YAML.load_file(yaml_file, {})
所以当空的YAML文件被提供给load_file函数时,它会返回一个空的hash(我的Ruby版本是Ruby 2.4.0p0)
示例: 空文件:/Users/batman/config/config.yml
irb:
2.4.0 :001 > require 'yaml'
=> true
2.4.0 :006 > YAML.load_file("/Users/batman/config/config.yml",{})
=> {}
【讨论】: