Module: Rails::Command
- Extended by:
- ActiveSupport::Autoload
- Includes:
- Behavior
- Defined in:
- lib/rails/command.rb,
lib/rails/command/base.rb,
lib/rails/command/actions.rb,
lib/rails/command/behavior.rb,
lib/rails/command/helpers/editor.rb,
lib/rails/commands/dev/dev_command.rb,
lib/rails/commands/new/new_command.rb,
lib/rails/commands/help/help_command.rb,
lib/rails/commands/rake/rake_command.rb,
lib/rails/commands/test/test_command.rb,
lib/rails/command/environment_argument.rb,
lib/rails/commands/notes/notes_command.rb,
lib/rails/commands/plugin/plugin_command.rb,
lib/rails/commands/routes/routes_command.rb,
lib/rails/commands/runner/runner_command.rb,
lib/rails/commands/server/server_command.rb,
lib/rails/commands/console/console_command.rb,
lib/rails/commands/destroy/destroy_command.rb,
lib/rails/commands/secrets/secrets_command.rb,
lib/rails/commands/version/version_command.rb,
lib/rails/commands/generate/generate_command.rb,
lib/rails/commands/dbconsole/dbconsole_command.rb,
lib/rails/commands/encrypted/encrypted_command.rb,
lib/rails/commands/application/application_command.rb,
lib/rails/commands/credentials/credentials_command.rb,
lib/rails/commands/db/system/change/change_command.rb,
lib/rails/commands/initializers/initializers_command.rb
Defined Under Namespace
Modules: Actions, Behavior, Db, EnvironmentArgument, Helpers Classes: ApplicationCommand, Base, ConsoleCommand, CredentialsCommand, DbconsoleCommand, DestroyCommand, DevCommand, EncryptedCommand, GenerateCommand, HelpCommand, InitializersCommand, NewCommand, NotesCommand, PluginCommand, RakeCommand, RoutesCommand, RunnerCommand, SecretsCommand, ServerCommand, TestCommand, VersionCommand
Constant Summary collapse
- HELP_MAPPINGS =
%w(-h -? --help)
Class Method Summary collapse
-
.environment ⇒ Object
:nodoc:.
-
.find_by_namespace(namespace, command_name = nil) ⇒ Object
Rails finds namespaces similar to Thor, it only adds one rule:.
-
.hidden_commands ⇒ Object
:nodoc:.
-
.invoke(full_namespace, args = [], **config) ⇒ Object
Receives a namespace, arguments, and the behavior to invoke the command.
-
.print_commands ⇒ Object
:nodoc:.
-
.root ⇒ Object
Returns the root of the Rails engine or app running the command.
Class Method Details
.environment ⇒ Object
:nodoc:
25 26 27 |
# File 'lib/rails/command.rb', line 25 def environment # :nodoc: ENV["RAILS_ENV"].presence || ENV["RACK_ENV"].presence || "development" end |
.find_by_namespace(namespace, command_name = nil) ⇒ Object
Rails finds namespaces similar to Thor, it only adds one rule:
Command names must end with “_command.rb”. This is required because Rails looks in load paths and loads the command just before it’s going to be used.
find_by_namespace :webrat, :integration
Will search for the following commands:
"webrat", "webrat:integration", "rails:webrat", "rails:webrat:integration"
68 69 70 71 72 73 74 75 76 77 |
# File 'lib/rails/command.rb', line 68 def find_by_namespace(namespace, command_name = nil) # :nodoc: lookups = [ namespace ] lookups << "#{namespace}:#{command_name}" if command_name lookups.concat lookups.map { |lookup| "rails:#{lookup}" } lookup(lookups) namespaces = subclasses.index_by(&:namespace) namespaces[(lookups & namespaces.keys).first] end |
.hidden_commands ⇒ Object
:nodoc:
21 22 23 |
# File 'lib/rails/command.rb', line 21 def hidden_commands # :nodoc: @hidden_commands ||= [] end |
.invoke(full_namespace, args = [], **config) ⇒ Object
Receives a namespace, arguments, and the behavior to invoke the command.
30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 |
# File 'lib/rails/command.rb', line 30 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, args = "application", "application", ["--help"] if rails_new_with_no_path?(args) 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 args = ["--describe", full_namespace] if HELP_MAPPINGS.include?(args[0]) find_by_namespace("rake").perform(full_namespace, args, config) end ensure ARGV.replace(original_argv) end |
.print_commands ⇒ Object
:nodoc:
88 89 90 |
# File 'lib/rails/command.rb', line 88 def print_commands # :nodoc: commands.each { |command| puts(" #{command}") } end |