module Rails::Generators::Actions

def rails_command(command, options = {})

Whether to run the command using +sudo+.
[+:sudo+]

Whether to capture and return the output of the command.
[+:capture+]

exit status.
Whether to halt the generator if the command exits with a non-success
[+:abort_on_failure+]

ENV["RAILS_ENV"] || "development".
The Rails environment in which to run the command. Defaults to
[+:env+]

==== Options

rails_command "gems:install", sudo: true
rails_command "stats", capture: true
rails_command "db:migrate", abort_on_failure: true
rails_command "db:migrate", env: "production"
rails_command "db:migrate"

Runs the specified Rails command.
def rails_command(command, options = {})
  if options[:inline]
    log :rails, command
    command, *args = Shellwords.split(command)
    in_root do
      silence_warnings do
        ::Rails::Command.invoke(command, args, **options)
      end
    end
  else
    execute_command :rails, command, options
  end
end