Namespace

Module

Class

Methods

Constants

HELP_MAPPINGS = %w(-h -? --help).to_set
VERSION_MAPPINGS = %w(-v --version).to_set

Class Public methods

invoke(full_namespace, args = [], **config)

Receives a namespace, arguments, and the behavior to invoke the command.

📝 Source code
# File railties/lib/rails/command.rb, line 62
      def invoke(full_namespace, args = [], **config)
        args = ["--help"] if rails_new_with_no_path?(args)

        full_namespace = full_namespace.to_s
        namespace, command_name = split_namespace(full_namespace)
        command = find_by_namespace(namespace, command_name)

        with_argv(args) do
          if command && command.all_commands[command_name]
            command.perform(command_name, args, config)
          else
            invoke_rake(full_namespace, args, config)
          end
        end
      rescue UnrecognizedCommandError => error
        if error.name == full_namespace && command && command_name == full_namespace
          command.perform("help", [], config)
        else
          puts error.detailed_message
        end
        exit(1)
      end
🔎 See on GitHub

root()

Returns the root of the Rails engine or app running the command.

📝 Source code
# File railties/lib/rails/command.rb, line 108
      def root
        if defined?(ENGINE_ROOT)
          Pathname.new(ENGINE_ROOT)
        else
          application_root
        end
      end
🔎 See on GitHub

Class Private methods

command_type()

📝 Source code
# File railties/lib/rails/command.rb, line 159
        def command_type # :doc:
          @command_type ||= "command"
        end
🔎 See on GitHub

file_lookup_paths()

📝 Source code
# File railties/lib/rails/command.rb, line 167
        def file_lookup_paths # :doc:
          @file_lookup_paths ||= [ "{#{lookup_paths.join(',')}}", "**", "*_command.rb" ]
        end
🔎 See on GitHub

lookup_paths()

📝 Source code
# File railties/lib/rails/command.rb, line 163
        def lookup_paths # :doc:
          @lookup_paths ||= %w( rails/commands commands )
        end
🔎 See on GitHub