class Rails::Command::Base
Public Class Methods
Sets the base_name
taking into account the current class namespace.
Rails::Command::TestCommand.base_name # => 'rails'
# File railties/lib/rails/command/base.rb, line 106 def base_name @base_name ||= if base = name.to_s.split("::").first base.underscore end end
Return command name without namespaces.
Rails::Command::TestCommand.command_name # => 'test'
# File railties/lib/rails/command/base.rb, line 115 def command_name @command_name ||= if command = name.to_s.split("::").last command.chomp!("Command") command.underscore end end
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
.
# File railties/lib/rails/command/base.rb, line 139 def default_command_root @default_command_root = resolve_path(".") unless defined?(@default_command_root) @default_command_root end
Tries to get the description from a USAGE file one folder above the command root.
Calls superclass method
# File railties/lib/rails/command/base.rb, line 34 def desc(usage = nil, description = nil, options = {}) if usage super else class_usage end end
Returns true when the app is a Rails engine.
# File railties/lib/rails/command/base.rb, line 28 def engine? defined?(ENGINE_ROOT) end
# File railties/lib/rails/command/base.rb, line 82 def executable(command_name = self.command_name) "#{bin} #{namespaced_name(command_name)}" end
Convenience method to hide this command from the available ones when running rails command.
# File railties/lib/rails/command/base.rb, line 55 def hide_command! Rails::Command.hidden_commands << self end
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.
Calls superclass method
# File railties/lib/rails/command/base.rb, line 45 def namespace(name = nil) if name super else @namespace ||= super.chomp("_command").sub(/:command:/, ":") end end
# File railties/lib/rails/command/base.rb, line 76 def printing_commands commands.filter_map do |name, command| [namespaced_name(name), command.description] unless command.hidden? end end
Path to lookup a USAGE description in a file.
# File railties/lib/rails/command/base.rb, line 129 def usage_path @usage_path = resolve_path("USAGE") unless defined?(@usage_path) @usage_path end