未验证 提交 8ed63651 编写于 作者: Y Yuji Yaginuma 提交者: GitHub

Merge pull request #35637 from y-yagi/add_environment_option_to_initializers

Add `-e/--environment` option to `rails initializers`
* Add `-e/--environment` option to `rails initializers`.
*Yuji Yaginuma*
## Rails 6.0.0.beta3 (March 11, 2019) ## ## Rails 6.0.0.beta3 (March 11, 2019) ##
* No changes. * No changes.
......
# frozen_string_literal: true # frozen_string_literal: true
require "rails/command/environment_argument"
module Rails module Rails
module Command module Command
class InitializersCommand < Base # :nodoc: class InitializersCommand < Base # :nodoc:
include EnvironmentArgument
desc "initializers", "Print out all defined initializers in the order they are invoked by Rails." desc "initializers", "Print out all defined initializers in the order they are invoked by Rails."
def perform def perform
extract_environment_option_from_argument
ENV["RAILS_ENV"] = options[:environment]
require_application_and_environment! require_application_and_environment!
Rails.application.initializers.tsort_each do |initializer| Rails.application.initializers.tsort_each do |initializer|
......
...@@ -25,8 +25,24 @@ class Rails::Command::InitializersTest < ActiveSupport::TestCase ...@@ -25,8 +25,24 @@ class Rails::Command::InitializersTest < ActiveSupport::TestCase
assert final_output.include?("set_added_test_module") assert final_output.include?("set_added_test_module")
end 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 private
def run_initializers_command def run_initializers_command(args = [])
rails "initializers" rails "initializers", args
end end
end end
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册