Merge pull request #30219 from yhirano55/fix_app_generator_api_options
Refactor `--api` option of the app generator
This commit is contained in:
commit
bef68862ae
@ -1,2 +1,2 @@
|
||||
class ApplicationController < ActionController::<%= options[:api] ? "API" : "Base" %>
|
||||
class ApplicationController < ActionController::<%= options.api? ? "API" : "Base" %>
|
||||
end
|
||||
|
@ -15,12 +15,12 @@ chdir APP_ROOT do
|
||||
puts '== Installing dependencies =='
|
||||
system! 'gem install bundler --conservative'
|
||||
system('bundle check') || system!('bundle install')
|
||||
<% unless options[:skip_yarn] -%>
|
||||
<% unless options.skip_yarn? -%>
|
||||
|
||||
# Install JavaScript dependencies if using Yarn
|
||||
# system('bin/yarn')
|
||||
<% end -%>
|
||||
<% unless options.skip_active_record -%>
|
||||
<% unless options.skip_active_record? -%>
|
||||
|
||||
# puts "\n== Copying sample files =="
|
||||
# unless File.exist?('config/database.yml')
|
||||
|
@ -15,7 +15,7 @@ chdir APP_ROOT do
|
||||
puts '== Installing dependencies =='
|
||||
system! 'gem install bundler --conservative'
|
||||
system('bundle check') || system!('bundle install')
|
||||
<% unless options.skip_active_record -%>
|
||||
<% unless options.skip_active_record? -%>
|
||||
|
||||
puts "\n== Updating database =="
|
||||
system! 'bin/rails db:migrate'
|
||||
|
@ -31,7 +31,7 @@ class Application < Rails::Application
|
||||
# Settings in config/environments/* take precedence over those specified here.
|
||||
# Application configuration should go into files in config/initializers
|
||||
# -- all .rb files in that directory are automatically loaded.
|
||||
<%- if options[:api] -%>
|
||||
<%- if options.api? -%>
|
||||
|
||||
# Only loads a smaller set of middleware suitable for API only apps.
|
||||
# Middleware like session, flash, cookies can be added back manually.
|
||||
|
@ -24,13 +24,13 @@
|
||||
# Ignore uploaded files in development
|
||||
/storage/*
|
||||
|
||||
<% unless options[:skip_yarn] -%>
|
||||
<% unless options.skip_yarn? -%>
|
||||
/node_modules
|
||||
/yarn-error.log
|
||||
|
||||
<% end -%>
|
||||
|
||||
<% unless options[:api] -%>
|
||||
<% unless options.api? -%>
|
||||
/public/assets
|
||||
<% end -%>
|
||||
.byebug_history
|
||||
|
@ -35,26 +35,26 @@ def test_skeleton_is_created
|
||||
def test_api_modified_files
|
||||
run_generator
|
||||
|
||||
assert_file ".gitignore" do |content|
|
||||
assert_no_match(/\/public\/asserts/, content)
|
||||
end
|
||||
|
||||
assert_file "Gemfile" do |content|
|
||||
assert_no_match(/gem 'coffee-rails'/, content)
|
||||
assert_no_match(/gem 'sass-rails'/, content)
|
||||
assert_no_match(/gem 'web-console'/, content)
|
||||
assert_no_match(/gem 'capybara'/, content)
|
||||
assert_no_match(/gem 'selenium-webdriver'/, content)
|
||||
assert_match(/# gem 'jbuilder'/, content)
|
||||
assert_match(/# gem 'rack-cors'/, content)
|
||||
end
|
||||
|
||||
assert_file "config/application.rb" do |content|
|
||||
assert_match(/config.api_only = true/, content)
|
||||
end
|
||||
|
||||
assert_file "config/initializers/cors.rb"
|
||||
|
||||
assert_file "config/initializers/wrap_parameters.rb"
|
||||
|
||||
assert_file "config/application.rb", /config\.api_only = true/
|
||||
assert_file "app/controllers/application_controller.rb", /ActionController::API/
|
||||
end
|
||||
|
||||
def test_generator_if_skip_action_cable_is_given
|
||||
run_generator [destination_root, "--skip-action-cable"]
|
||||
run_generator [destination_root, "--api", "--skip-action-cable"]
|
||||
assert_file "config/application.rb", /#\s+require\s+["']action_cable\/engine["']/
|
||||
assert_no_file "config/cable.yml"
|
||||
assert_no_file "app/channels"
|
||||
@ -87,20 +87,49 @@ def test_app_update_does_not_generate_unnecessary_bin_files
|
||||
private
|
||||
|
||||
def default_files
|
||||
files = %W(
|
||||
.gitignore
|
||||
%w(.gitignore
|
||||
.ruby-version
|
||||
README.md
|
||||
Gemfile
|
||||
Rakefile
|
||||
config.ru
|
||||
app/channels
|
||||
app/controllers
|
||||
app/mailers
|
||||
app/models
|
||||
app/views/layouts
|
||||
app/views/layouts/mailer.html.erb
|
||||
app/views/layouts/mailer.text.erb
|
||||
bin/bundle
|
||||
bin/rails
|
||||
bin/rake
|
||||
bin/setup
|
||||
bin/update
|
||||
config/application.rb
|
||||
config/boot.rb
|
||||
config/cable.yml
|
||||
config/environment.rb
|
||||
config/environments
|
||||
config/environments/development.rb
|
||||
config/environments/production.rb
|
||||
config/environments/test.rb
|
||||
config/initializers
|
||||
config/initializers/application_controller_renderer.rb
|
||||
config/initializers/backtrace_silencers.rb
|
||||
config/initializers/cors.rb
|
||||
config/initializers/filter_parameter_logging.rb
|
||||
config/initializers/inflections.rb
|
||||
config/initializers/mime_types.rb
|
||||
config/initializers/wrap_parameters.rb
|
||||
config/locales
|
||||
config/locales/en.yml
|
||||
config/puma.rb
|
||||
config/routes.rb
|
||||
config/secrets.yml
|
||||
config/spring.rb
|
||||
config/storage.yml
|
||||
db
|
||||
db/seeds.rb
|
||||
lib
|
||||
lib/tasks
|
||||
log
|
||||
@ -111,8 +140,6 @@ def default_files
|
||||
tmp
|
||||
vendor
|
||||
)
|
||||
files.concat %w(bin/bundle bin/rails bin/rake)
|
||||
files
|
||||
end
|
||||
|
||||
def skipped_files
|
||||
@ -130,7 +157,7 @@ def skipped_files
|
||||
public/500.html
|
||||
public/apple-touch-icon-precomposed.png
|
||||
public/apple-touch-icon.png
|
||||
public/favicon.icon
|
||||
public/favicon.ico
|
||||
package.json
|
||||
)
|
||||
end
|
||||
|
@ -537,14 +537,6 @@ def test_does_not_generate_system_test_files_if_skip_system_test_is_given
|
||||
end
|
||||
end
|
||||
|
||||
def test_generator_if_api_is_given
|
||||
run_generator [destination_root, "--api"]
|
||||
assert_file "Gemfile" do |content|
|
||||
assert_no_match(/capybara/, content)
|
||||
assert_no_match(/selenium-webdriver/, content)
|
||||
end
|
||||
end
|
||||
|
||||
def test_inclusion_of_javascript_runtime
|
||||
run_generator
|
||||
if defined?(JRUBY_VERSION)
|
||||
|
Loading…
Reference in New Issue
Block a user