我想从我的YAML文件加载数据并在我的ruby应用程序中使用它。 YAML中提供的内容将用于不同的地方。因此,我想先阅读它,并在需要时使用数据。
我想知道最佳做法是什么?
我尝试的是
config.yaml
db:
username: admin
password: admin
config.rb
class Config
class << self
attr_accessor :uname, :pwd
def load
config_data = YAML.load_file("c:\config.yml")
@uname = config_data['db']['username']
@pwd = config_data['db']['password']
end
end
end
my_app.rb
Config.load
puts Config.uname
puts Config.pwd
请告诉我这是否是加载和使用YAML数据的正确方法。如果没有,请分享最佳实践。
答案 0 :(得分:0)
这几乎不取决于你的意图,但总的来说,是的,它主要是 正确的方法。你想做的更多,是缓存一次读取数据:
class Config
class << self
attr_accessor :uname, :pwd
def load force_reload = false
return @config_data if @config_data && !force_reload
@config_data = YAML.load_file("c:\config.yml")
@uname = @config_data['db']['username']
@pwd = @config_data['db']['password']
end
end
end
如果@config
已加载,我们会立即返回,允许快速后续调用Config.config
。
是否要显式重新加载配置,它应该将参数传递给load:
Config.load true # true means reload YAML explicitly