Skip to content

Commit 62499cb

Browse files
committed
Skip unused components when running in Rails plugin
1 parent 220049f commit 62499cb

File tree

3 files changed

+32
-1
lines changed

3 files changed

+32
-1
lines changed

railties/CHANGELOG.md

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,7 @@
1+
* Skip unused components when running `bin/rails` in Rails plugin.
2+
3+
*Yoshiyuki Hirano*
4+
15
* Deprecate support of use `Rails::Application` subclass to start Rails server.
26

37
*Yuji Yaginuma*

railties/lib/rails/generators/rails/plugin/templates/bin/rails.tt

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,5 +9,20 @@ APP_PATH = File.expand_path('../<%= dummy_path -%>/config/application', __dir__)
99
ENV['BUNDLE_GEMFILE'] ||= File.expand_path('../Gemfile', __dir__)
1010
require 'bundler/setup' if File.exist?(ENV['BUNDLE_GEMFILE'])
1111

12+
<% if include_all_railties? -%>
1213
require 'rails/all'
14+
<% else -%>
15+
require "rails"
16+
# Pick the frameworks you want:
17+
require "active_model/railtie"
18+
require "active_job/railtie"
19+
<%= comment_if :skip_active_record %>require "active_record/railtie"
20+
require "action_controller/railtie"
21+
<%= comment_if :skip_action_mailer %>require "action_mailer/railtie"
22+
require "action_view/railtie"
23+
require "active_storage/engine"
24+
<%= comment_if :skip_action_cable %>require "action_cable/engine"
25+
<%= comment_if :skip_sprockets %>require "sprockets/railtie"
26+
<%= comment_if :skip_test %>require "rails/test_unit/railtie"
27+
<% end -%>
1328
require 'rails/engine/commands'

railties/test/generators/plugin_generator_test.rb

Lines changed: 13 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -75,6 +75,18 @@ def test_generating_without_options
7575
assert_no_file "bin/rails"
7676
end
7777

78+
def test_generating_in_full_mode_with_almost_of_all_skip_options
79+
run_generator [destination_root, "--full", "-M", "-O", "-C", "-S", "-T"]
80+
assert_file "bin/rails" do |content|
81+
assert_no_match(/\s+require\s+["']rails\/all["']/, content)
82+
end
83+
assert_file "bin/rails", /#\s+require\s+["']active_record\/railtie["']/
84+
assert_file "bin/rails", /#\s+require\s+["']action_mailer\/railtie["']/
85+
assert_file "bin/rails", /#\s+require\s+["']action_cable\/engine["']/
86+
assert_file "bin/rails", /#\s+require\s+["']sprockets\/railtie["']/
87+
assert_file "bin/rails", /#\s+require\s+["']rails\/test_unit\/railtie["']/
88+
end
89+
7890
def test_generating_test_files_in_full_mode
7991
run_generator [destination_root, "--full"]
8092
assert_directory "test/integration/"
@@ -277,7 +289,7 @@ def test_creating_engine_in_full_mode
277289
assert_file "app/views"
278290
assert_file "app/helpers"
279291
assert_file "app/mailers"
280-
assert_file "bin/rails"
292+
assert_file "bin/rails", /\s+require\s+["']rails\/all["']/
281293
assert_file "config/routes.rb", /Rails.application.routes.draw do/
282294
assert_file "lib/bukkits/engine.rb", /module Bukkits\n class Engine < ::Rails::Engine\n end\nend/
283295
assert_file "lib/bukkits.rb", /require "bukkits\/engine"/

0 commit comments

Comments
 (0)