Methods
- banner
- base_name
- command_name
- default_command_root
- desc
- engine?
- executable
- help
- hide_command!
- namespace
- printing_commands
- usage_path
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(File.join("../commands", command_root_namespace), __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
"bin/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 152
def help
if command_name = self.class.command_name
self.class.command_help(shell, command_name)
else
super
end
end
🔎 See on GitHub