diff options
author | Yuji Yaginuma <yuuji.yaginuma@gmail.com> | 2019-03-17 08:29:20 +0900 |
---|---|---|
committer | GitHub <noreply@github.com> | 2019-03-17 08:29:20 +0900 |
commit | 8ed636511779ed1472f4f88362ded34f61005f4a (patch) | |
tree | 374813366030fa192f64e60f5c10e9794e7d6cb0 /railties | |
parent | 727fcb7a5a786370e6a06e79db92d90c88c69813 (diff) | |
parent | 6f94260ac67755fbc4d89e7dd9ba6be04abfa9e7 (diff) | |
download | rails-8ed636511779ed1472f4f88362ded34f61005f4a.tar.gz rails-8ed636511779ed1472f4f88362ded34f61005f4a.tar.bz2 rails-8ed636511779ed1472f4f88362ded34f61005f4a.zip |
Merge pull request #35637 from y-yagi/add_environment_option_to_initializers
Add `-e/--environment` option to `rails initializers`
Diffstat (limited to 'railties')
-rw-r--r-- | railties/CHANGELOG.md | 4 | ||||
-rw-r--r-- | railties/lib/rails/commands/initializers/initializers_command.rb | 7 | ||||
-rw-r--r-- | railties/test/commands/initializers_test.rb | 20 |
3 files changed, 29 insertions, 2 deletions
diff --git a/railties/CHANGELOG.md b/railties/CHANGELOG.md index 8163b282aa..264e72bc59 100644 --- a/railties/CHANGELOG.md +++ b/railties/CHANGELOG.md @@ -1,3 +1,7 @@ +* Add `-e/--environment` option to `rails initializers`. + + *Yuji Yaginuma* + ## Rails 6.0.0.beta3 (March 11, 2019) ## * No changes. diff --git a/railties/lib/rails/commands/initializers/initializers_command.rb b/railties/lib/rails/commands/initializers/initializers_command.rb index 33596177af..bd2f3bed67 100644 --- a/railties/lib/rails/commands/initializers/initializers_command.rb +++ b/railties/lib/rails/commands/initializers/initializers_command.rb @@ -1,10 +1,17 @@ # frozen_string_literal: true +require "rails/command/environment_argument" + module Rails module Command class InitializersCommand < Base # :nodoc: + include EnvironmentArgument + desc "initializers", "Print out all defined initializers in the order they are invoked by Rails." def perform + extract_environment_option_from_argument + ENV["RAILS_ENV"] = options[:environment] + require_application_and_environment! Rails.application.initializers.tsort_each do |initializer| diff --git a/railties/test/commands/initializers_test.rb b/railties/test/commands/initializers_test.rb index bdfbb3021c..793365ef3d 100644 --- a/railties/test/commands/initializers_test.rb +++ b/railties/test/commands/initializers_test.rb @@ -25,8 +25,24 @@ class Rails::Command::InitializersTest < ActiveSupport::TestCase assert final_output.include?("set_added_test_module") end + + test "prints out initializers only specified in environment option" do + add_to_config <<-RUBY + initializer(:set_added_development_module) { } if Rails.env.development? + initializer(:set_added_production_module) { } if Rails.env.production? + RUBY + + output = run_initializers_command.split("\n") + assert_includes output, "AppTemplate::Application.set_added_development_module" + assert_not_includes output, "AppTemplate::Application.set_added_production_module" + + output = run_initializers_command(["-e", "production"]).split("\n") + assert_not_includes output, "AppTemplate::Application.set_added_development_module" + assert_includes output, "AppTemplate::Application.set_added_production_module" + end + private - def run_initializers_command - rails "initializers" + def run_initializers_command(args = []) + rails "initializers", args end end |