这是一个非 Rails 应用程序,只是一个简单的 ruby 脚本,它使用 rake 等来自动化一些事情。
我的文件夹布局是这样的:
/scripts/Rakefile
/scripts/config/config.yml
/scripts/tasks/*.rake (various rake files with namespaces to organize them)
/scripts/lib/settings.rb
现在我想创建一个设置类来加载配置 yaml 文件,然后公开 yaml 文件内容的属性/方法。
yaml 文件具有用于开发和生产的单独部分。
development:
scripts_path: '/dev/mygit/app1/scripts/'
production:
scripts_path: '/var/lib/app1/scripts/'
到目前为止,我的 rakefile 看起来像:
$LOAD_PATH.unshift File.expand_path('..', __FILE__)
#imports
require 'fileutils'
require 'rubygems'
require 'active_record'
require 'yaml'
require 'logger'
require 'ar/models'
require 'lib/app1'
env = ENV['ENV'] || 'development'
config = YAML::load(File.open('config/config.yml'))[env]
Dir.glob('tasks/*.rake').each { |r| import r }
我需要有关 Settings.rb 文件的帮助,对吗?
module App1
class Settings
def initialize(config_path, env)
config = YAML.load(File.open(config_path))
end
def scripts_path
end
end
end
如何传入环境,然后从配置中为每种方法读取正确的值,例如scripts_path
等?
现在假设每个 *.rake 文件都需要以某种方式引用我的 Settings.rb 文件(以获取配置相关信息)。我该怎么做?由于我的设置需要 config.yml 文件的路径,我是否必须在每个 rake 文件中执行此操作?
更新 对不起,这不是 Rails 应用程序,只是一些 ruby 脚本。