aboutsummaryrefslogtreecommitdiffstats
path: root/lib/rubygems/commands/help_command.rb
diff options
context:
space:
mode:
authordrbrain <drbrain@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2013-09-13 19:58:57 +0000
committerdrbrain <drbrain@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2013-09-13 19:58:57 +0000
commit1daa0b113d853bfa57b776cc569939b61ca14292 (patch)
treef8c4acb08a551820299dff2b13966d6ac38d31e4 /lib/rubygems/commands/help_command.rb
parent85995e88d49c442b5b113c2676456133e79f5c02 (diff)
downloadruby-1daa0b113d853bfa57b776cc569939b61ca14292.tar.gz
* lib/rubygems: Update to RubyGems 2.1.3
Fixed installing platform gems Restored concurrent requires Fixed installing gems with extensions with --install-dir Fixed `gem fetch -v` to install the latest version Fixed installing gems with "./" in their files entries * test/rubygems/test_gem_package.rb: Tests for the above. * NEWS: Updated for RubyGems 2.1.3 git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@42938 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'lib/rubygems/commands/help_command.rb')
-rw-r--r--lib/rubygems/commands/help_command.rb140
1 files changed, 55 insertions, 85 deletions
diff --git a/lib/rubygems/commands/help_command.rb b/lib/rubygems/commands/help_command.rb
index ed7be903ac..7f1fb486e0 100644
--- a/lib/rubygems/commands/help_command.rb
+++ b/lib/rubygems/commands/help_command.rb
@@ -46,10 +46,6 @@ Some examples of 'gem' usage.
* Update all gems on your system:
gem update
-
-* Update your local version of RubyGems
-
- gem update --system
EOF
PLATFORMS = <<-'EOF'
@@ -59,9 +55,8 @@ your current platform by running `gem environment`.
RubyGems matches platforms as follows:
- * The CPU must match exactly unless one of the platforms has
- "universal" as the CPU or the local CPU starts with "arm" and the gem's
- CPU is exactly "arm" (for gems that support generic ARM architecture).
+ * The CPU must match exactly, unless one of the platforms has
+ "universal" as the CPU.
* The OS must match exactly.
* The versions must match exactly unless one of the versions is nil.
@@ -71,20 +66,11 @@ you pass must match "#{cpu}-#{os}" or "#{cpu}-#{os}-#{version}". On mswin
platforms, the version is the compiler version, not the OS version. (Ruby
compiled with VC6 uses "60" as the compiler version, VC8 uses "80".)
-For the ARM architecture, gems with a platform of "arm-linux" should run on a
-reasonable set of ARM CPUs and not depend on instructions present on a limited
-subset of the architecture. For example, the binary should run on platforms
-armv5, armv6hf, armv6l, armv7, etc. If you use the "arm-linux" platform
-please test your gem on a variety of ARM hardware before release to ensure it
-functions correctly.
-
Example platforms:
x86-freebsd # Any FreeBSD version on an x86 CPU
universal-darwin-8 # Darwin 8 only gems that run on any CPU
x86-mswin32-80 # Windows gems compiled with VC8
- armv7-linux # Gem complied for an ARMv7 CPU running linux
- arm-linux # Gem compiled for any ARM CPU running linux
When building platform gems, set the platform in the gem specification to
Gem::Platform::CURRENT. This will correctly mark the gem with your ruby's
@@ -94,8 +80,6 @@ platform.
def initialize
super 'help', "Provide help on the 'gem' command"
-
- @command_manager = Gem::CommandManager.instance
end
def arguments # :nodoc:
@@ -112,92 +96,78 @@ platform.
end
def execute
+ command_manager = Gem::CommandManager.instance
arg = options[:args][0]
if begins? "commands", arg then
- show_commands
-
- elsif begins? "options", arg then
- say Gem::Command::HELP
+ out = []
+ out << "GEM commands are:"
+ out << nil
- elsif begins? "examples", arg then
- say EXAMPLES
+ margin_width = 4
- elsif begins? "platforms", arg then
- say PLATFORMS
+ desc_width = command_manager.command_names.map { |n| n.size }.max + 4
- elsif options[:help] then
- show_help
+ summary_width = 80 - margin_width - desc_width
+ wrap_indent = ' ' * (margin_width + desc_width)
+ format = "#{' ' * margin_width}%-#{desc_width}s%s"
- elsif arg then
- show_command_help arg
+ command_manager.command_names.each do |cmd_name|
+ command = command_manager[cmd_name]
- else
- say Gem::Command::HELP
- end
- end
+ summary =
+ if command then
+ command.summary
+ else
+ "[No command found for #{cmd_name}, bug?]"
+ end
- def show_commands # :nodoc:
- out = []
- out << "GEM commands are:"
- out << nil
+ summary = wrap(summary, summary_width).split "\n"
+ out << sprintf(format, cmd_name, summary.shift)
+ until summary.empty? do
+ out << "#{wrap_indent}#{summary.shift}"
+ end
+ end
- margin_width = 4
+ out << nil
+ out << "For help on a particular command, use 'gem help COMMAND'."
+ out << nil
+ out << "Commands may be abbreviated, so long as they are unambiguous."
+ out << "e.g. 'gem i rake' is short for 'gem install rake'."
- desc_width = @command_manager.command_names.map { |n| n.size }.max + 4
+ say out.join("\n")
- summary_width = 80 - margin_width - desc_width
- wrap_indent = ' ' * (margin_width + desc_width)
- format = "#{' ' * margin_width}%-#{desc_width}s%s"
+ elsif begins? "options", arg then
+ say Gem::Command::HELP
- @command_manager.command_names.each do |cmd_name|
- command = @command_manager[cmd_name]
+ elsif begins? "examples", arg then
+ say EXAMPLES
- summary =
- if command then
- command.summary
- else
- "[No command found for #{cmd_name}]"
- end
+ elsif begins? "platforms", arg then
+ say PLATFORMS
- summary = wrap(summary, summary_width).split "\n"
- out << sprintf(format, cmd_name, summary.shift)
- until summary.empty? do
- out << "#{wrap_indent}#{summary.shift}"
+ elsif options[:help] then
+ command = command_manager[options[:help]]
+ if command
+ # help with provided command
+ command.invoke("--help")
+ else
+ alert_error "Unknown command #{options[:help]}. Try 'gem help commands'"
end
- end
- out << nil
- out << "For help on a particular command, use 'gem help COMMAND'."
- out << nil
- out << "Commands may be abbreviated, so long as they are unambiguous."
- out << "e.g. 'gem i rake' is short for 'gem install rake'."
-
- say out.join("\n")
- end
-
- def show_command_help command_name # :nodoc:
- command_name = command_name.downcase
-
- possibilities = @command_manager.find_command_possibilities command_name
-
- if possibilities.size == 1 then
- command = @command_manager[possibilities.first]
- command.invoke("--help")
- elsif possibilities.size > 1 then
- alert_warning "Ambiguous command #{command_name} (#{possibilities.join(', ')})"
- else
- alert_warning "Unknown command #{command_name}. Try: gem help commands"
- end
- end
+ elsif arg then
+ possibilities = command_manager.find_command_possibilities(arg.downcase)
+ if possibilities.size == 1
+ command = command_manager[possibilities.first]
+ command.invoke("--help")
+ elsif possibilities.size > 1
+ alert_warning "Ambiguous command #{arg} (#{possibilities.join(', ')})"
+ else
+ alert_warning "Unknown command #{arg}. Try gem help commands"
+ end
- def show_help # :nodoc:
- command = @command_manager[options[:help]]
- if command then
- # help with provided command
- command.invoke("--help")
else
- alert_error "Unknown command #{options[:help]}. Try 'gem help commands'"
+ say Gem::Command::HELP
end
end