1
0
Fork 0
mirror of https://github.com/rails/rails.git synced 2022-11-09 12:12:34 -05:00
rails--rails/railties/lib/rails/commands/generate/generate_command.rb
Jonathan Hefner 7e54d3bc21 Fix rails new --dev
Follow-up to #38429.

`Rails::Command.invoke` passes arguments through to the appropriate
command class.  However, some command classes were ignoring those
arguments, and instead relying on the contents of ARGV.  In particular,
RakeCommand expected ARGV to contain the arguments necessary to the Rake
task, and no other arguments.  This caused the `webpacker:install` task
to fail when the `--dev` option from `rails new --dev` remained in ARGV.

This commit changes the relevant command classes to not rely on the
previous contents of ARGV.  This commit also adds a missing `require`
for use of `Kernel#silence_warnings`.

Fixes #38459.
2020-02-16 00:44:37 -06:00

30 lines
687 B
Ruby

# frozen_string_literal: true
require "rails/generators"
module Rails
module Command
class GenerateCommand < Base # :nodoc:
no_commands do
def help
require_application_and_environment!
load_generators
Rails::Generators.help self.class.command_name
end
end
def perform(*)
generator = args.shift
return help unless generator
require_application_and_environment!
load_generators
ARGV.replace(args) # set up ARGV for third-party libraries
Rails::Generators.invoke generator, args, behavior: :invoke, destination_root: Rails::Command.root
end
end
end
end