我将从YAML文件中加载一些应用配置:
# YAML config file
app_name: "Example"
app_path: ~/path/to/app
所以我加载它们:
app_config = YAML::load_file("config.yml")
如果缺少某些键/值,那么设置默认值的干净方法是什么?
答案 0 :(得分:2)
您应该准备一个默认哈希,然后通过合并哈希值来覆盖配置中的值。
default_app_config = {
"app_name" => "Default name",
"app_path" => "default/path",
...,
}
app_config = default_app_config.merge(YAML.load_config("config.yml"))
答案 1 :(得分:1)
由于app_config
只是你加载YAML配置时的Hash,你可以使用类似哈希的测试,如下所示:
name = app_config['name'] || 'default'
如果您要进行非常这些检查的最小数量,这非常有用,特别是当它们位于您加载YAML配置的点附近时。
但是,您可以使用默认值更新配置哈希,如下所示:
app_config['name'] ||= 'default'
这样,您就不必一直检查代码中是否存在密钥。
在加载YAML时,这样的事情可能会起作用:
app_config = YAML::load_file("config.yml")
# Set default values
app_config['app_name'] ||= "Example"
app_config['app_path'] ||= "~/path/to/app"
通过应用默认值,这将使代码的其余部分变得简单和简单。这些是YAML配置文件的DRY默认值。