弾丸の宝石など、開発によく使われる宝石を追加した宝石を作っています。
アプリケーションのdevelopment.rb構成ファイルに追加したいので、アプリケーションの構成ファイルから追加することなく、弾丸のgemを構成できます。
私が知る限り、アプリケーションの開発構成ファイルは、アプリケーション名( "SomeApp :: Application.configure")に間隔を置いて名前が付けられています。では、このファイルをgemから動的に追加するにはどうすればよいでしょうか。
弾丸の宝石など、開発によく使われる宝石を追加した宝石を作っています。
アプリケーションのdevelopment.rb構成ファイルに追加したいので、アプリケーションの構成ファイルから追加することなく、弾丸のgemを構成できます。
私が知る限り、アプリケーションの開発構成ファイルは、アプリケーション名( "SomeApp :: Application.configure")に間隔を置いて名前が付けられています。では、このファイルをgemから動的に追加するにはどうすればよいでしょうか。
最善の策は、gemを継承するクラスを作成し、それがロードされたときにgemに含まれるようにすることで、gemをrailsエンジンとして設定することです。Rails::Engine
エンジン内では、初期化ブロックの一部としてセットアップ作業を行うことができます。
module MyGem
class Engine < Rails::Engine
initializer "my_gem.setup_environment" do |app|
case Rails.env
when 'development'
# do something
else
# do something else
end
end
end
end
Railtie付き。他のRailtiesとアプリケーション間で共有されている構成オブジェクトにアクセスできます。
class MyRailtie < Rails::Railtie
config.to_prepare do
MyRailtie.setup!
end
end