Module: Rails::Command
Constant Summary
-
COMMANDS_IN_USAGE =
private
# File 'railties/lib/rails/command.rb', line 94%w(generate console server test test:system dbconsole new)
-
HELP_MAPPINGS =
# File 'railties/lib/rails/command.rb', line 19%w(-h -? --help)
Class Method Summary
-
.invoke(full_namespace, args = [], **config)
Receives a namespace, arguments and the behavior to invoke the command.
-
.root
Returns the root of the
::Rails
engine or app running the command. - .command_type private
- .file_lookup_paths private
- .lookup_paths private
::ActiveSupport::Autoload
- Extended
Class Method Details
.command_type (private)
[ GitHub ]# File 'railties/lib/rails/command.rb', line 105
def command_type # :doc: @command_type ||= "command" end
.file_lookup_paths (private)
[ GitHub ]# File 'railties/lib/rails/command.rb', line 113
def file_lookup_paths # :doc: @file_lookup_paths ||= [ "{#{lookup_paths.join(',')}}", "**", "*_command.rb" ] end
.invoke(full_namespace, args = [], **config)
Receives a namespace, arguments and the behavior to invoke the command.
# File 'railties/lib/rails/command.rb', line 31
def invoke(full_namespace, args = [], **config) namespace = full_namespace = full_namespace.to_s if char = namespace =~ /:(\w+)$/ command_name, namespace = $1, namespace.slice(0, char) else command_name = namespace end command_name, namespace = "help", "help" if command_name.blank? || HELP_MAPPINGS.include?(command_name) command_name, namespace = "version", "version" if %w( -v --version ).include?(command_name) original_argv = ARGV.dup ARGV.replace(args) command = find_by_namespace(namespace, command_name) if command && command.all_commands[command_name] command.perform(command_name, args, config) else find_by_namespace("rake").perform(full_namespace, args, config) end ensure ARGV.replace(original_argv) end
.lookup_paths (private)
[ GitHub ]# File 'railties/lib/rails/command.rb', line 109
def lookup_paths # :doc: @lookup_paths ||= %w( rails/commands commands ) end
.root
Returns the root of the ::Rails
engine or app running the command.