これは非レールアプリであり、rakeなどを使用していくつかのことを自動化する単純なrubyスクリプトです。
私のフォルダレイアウトは次のとおりです。
/scripts/Rakefile
/scripts/config/config.yml
/scripts/tasks/*.rake (various rake files with namespaces to organize them)
/scripts/lib/settings.rb
次に、config yamlファイルをロードするSettingsクラスを作成し、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
どうすればenvを渡して、scripts_path
etcなどの各メソッドの構成から正しい値を読み取ることができますか?
ここで、各* .rakeファイルが何らかの方法で私のSettings.rbファイルを参照する必要があると仮定します(構成関連の情報を取得するため)。これはどのようにすればよいですか?私の設定にはconfig.ymlファイルのパスが必要なので、各rakeファイルでこれを行う必要がありますか?
更新 申し訳ありませんが、これはRailsアプリではなく、いくつかのrubyスクリプトです。