Methods

Included Modules

Class Public methods

banner(*)

Use Rails' default banner.

📝 Source code
# File railties/lib/rails/command/base.rb, line 81
        def banner(*)
          "#{executable} #{arguments.map(&:usage).join(' ')} [options]".squish
        end
🔎 See on GitHub

base_name()

Sets the base_name taking into account the current class namespace.

Rails::Command::TestCommand.base_name # => 'rails'
📝 Source code
# File railties/lib/rails/command/base.rb, line 88
        def base_name
          @base_name ||= begin
            if base = name.to_s.split("::").first
              base.underscore
            end
          end
        end
🔎 See on GitHub

command_name()

Return command name without namespaces.

Rails::Command::TestCommand.command_name # => 'test'
📝 Source code
# File railties/lib/rails/command/base.rb, line 99
        def command_name
          @command_name ||= begin
            if command = name.to_s.split("::").last
              command.chomp!("Command")
              command.underscore
            end
          end
        end
🔎 See on GitHub

default_command_root()

Default file root to place extra files a command might need, placed one folder above the command file.

For a Rails::Command::TestCommand placed in rails/command/test_command.rb would return rails/test.

📝 Source code
# File railties/lib/rails/command/base.rb, line 121
        def default_command_root
          path = File.expand_path(relative_command_path, __dir__)
          path if File.exist?(path)
        end
🔎 See on GitHub

desc(usage = nil, description = nil, options = {})

Tries to get the description from a USAGE file one folder above the command root.

📝 Source code
# File railties/lib/rails/command/base.rb, line 31
        def desc(usage = nil, description = nil, options = {})
          if usage
            super
          else
            @desc ||= ERB.new(File.read(usage_path)).result(binding) if usage_path
          end
        end
🔎 See on GitHub

engine?()

Returns true when the app is a Rails engine.

📝 Source code
# File railties/lib/rails/command/base.rb, line 25
        def engine?
          defined?(ENGINE_ROOT)
        end
🔎 See on GitHub

executable()

📝 Source code
# File railties/lib/rails/command/base.rb, line 76
        def executable
          "rails #{command_name}"
        end
🔎 See on GitHub

hide_command!()

Convenience method to hide this command from the available ones when running rails command.

📝 Source code
# File railties/lib/rails/command/base.rb, line 52
        def hide_command!
          Rails::Command.hidden_commands << self
        end
🔎 See on GitHub

namespace(name = nil)

Convenience method to get the namespace from the class name. It's the same as Thor default except that the Command at the end of the class is removed.

📝 Source code
# File railties/lib/rails/command/base.rb, line 42
        def namespace(name = nil)
          if name
            super
          else
            @namespace ||= super.chomp("_command").sub(/:command:/, ":")
          end
        end
🔎 See on GitHub

printing_commands()

📝 Source code
# File railties/lib/rails/command/base.rb, line 72
        def printing_commands
          namespaced_commands
        end
🔎 See on GitHub

usage_path()

Path to lookup a USAGE description in a file.

📝 Source code
# File railties/lib/rails/command/base.rb, line 109
        def usage_path
          if default_command_root
            path = File.join(default_command_root, "USAGE")
            path if File.exist?(path)
          end
        end
🔎 See on GitHub

Instance Public methods

help()

📝 Source code
# File railties/lib/rails/command/base.rb, line 160
      def help
        if command_name = self.class.command_name
          self.class.command_help(shell, command_name)
        else
          super
        end
      end
🔎 See on GitHub