module Rails::Command
Constants
- HELP_MAPPINGS
Public Class Methods
# File railties/lib/rails/command.rb, line 32 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) 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 end
Receives a namespace, arguments and the behavior to invoke the command.
# File railties/lib/rails/command.rb, line 77 def root if defined?(ENGINE_ROOT) Pathname.new(ENGINE_ROOT) elsif defined?(APP_PATH) Pathname.new(File.expand_path("../..", APP_PATH)) end end
Returns the root of the Rails engine or app running the command.
Private Class Methods
# File railties/lib/rails/command.rb, line 101 def command_type # :doc: @command_type ||= "command" end
# File railties/lib/rails/command.rb, line 109 def file_lookup_paths # :doc: @file_lookup_paths ||= [ "{#{lookup_paths.join(',')}}", "**", "*_command.rb" ] end
# File railties/lib/rails/command.rb, line 105 def lookup_paths # :doc: @lookup_paths ||= %w( rails/commands commands ) end
© 2004–2019 David Heinemeier Hansson
Licensed under the MIT License.