summaryrefslogtreecommitdiff
path: root/ruby_2_2/lib/rubygems/commands/help_command.rb
diff options
context:
space:
mode:
Diffstat (limited to 'ruby_2_2/lib/rubygems/commands/help_command.rb')
-rw-r--r--ruby_2_2/lib/rubygems/commands/help_command.rb384
1 files changed, 0 insertions, 384 deletions
diff --git a/ruby_2_2/lib/rubygems/commands/help_command.rb b/ruby_2_2/lib/rubygems/commands/help_command.rb
deleted file mode 100644
index ed81ad6e25..0000000000
--- a/ruby_2_2/lib/rubygems/commands/help_command.rb
+++ /dev/null
@@ -1,384 +0,0 @@
-require 'rubygems/command'
-
-class Gem::Commands::HelpCommand < Gem::Command
-
- # :stopdoc:
- EXAMPLES = <<-EOF
-Some examples of 'gem' usage.
-
-* Install 'rake', either from local directory or remote server:
-
- gem install rake
-
-* Install 'rake', only from remote server:
-
- gem install rake --remote
-
-* Install 'rake', but only version 0.3.1, even if dependencies
- are not met, and into a user-specific directory:
-
- gem install rake --version 0.3.1 --force --user-install
-
-* List local gems whose name begins with 'D':
-
- gem list D
-
-* List local and remote gems whose name contains 'log':
-
- gem search log --both
-
-* List only remote gems whose name contains 'log':
-
- gem search log --remote
-
-* Uninstall 'rake':
-
- gem uninstall rake
-
-* Create a gem:
-
- See http://guides.rubygems.org/make-your-own-gem/
-
-* See information about RubyGems:
-
- gem environment
-
-* Update all gems on your system:
-
- gem update
-
-* Update your local version of RubyGems
-
- gem update --system
- EOF
-
- GEM_DEPENDENCIES = <<-EOF
-A gem dependencies file allows installation of a consistent set of gems across
-multiple environments. The RubyGems implementation is designed to be
-compatible with Bundler's Gemfile format. You can see additional
-documentation on the format at:
-
- http://bundler.io
-
-RubyGems automatically looks for these gem dependencies files:
-
-* gem.deps.rb
-* Gemfile
-* Isolate
-
-These files are looked up automatically using `gem install -g`, or you can
-specify a custom file.
-
-When the RUBYGEMS_GEMDEPS environment variable is set to a gem dependencies
-file the gems from that file will be activated at startup time. Set it to a
-specific filename or to "-" to have RubyGems automatically discover the gem
-dependencies file by walking up from the current directory.
-
-You can also activate gem dependencies at program startup using
-Gem.use_gemdeps.
-
-NOTE: Enabling automatic discovery on multiuser systems can lead to execution
-of arbitrary code when used from directories outside your control.
-
-Gem Dependencies
-================
-
-Use #gem to declare which gems you directly depend upon:
-
- gem 'rake'
-
-To depend on a specific set of versions:
-
- gem 'rake', '~> 10.3', '>= 10.3.2'
-
-RubyGems will require the gem name when activating the gem using
-the RUBYGEMS_GEMDEPS environment variable or Gem::use_gemdeps. Use the
-require: option to override this behavior if the gem does not have a file of
-that name or you don't want to require those files:
-
- gem 'my_gem', require: 'other_file'
-
-To prevent RubyGems from requiring any files use:
-
- gem 'my_gem', require: false
-
-To load dependencies from a .gemspec file:
-
- gemspec
-
-RubyGems looks for the first .gemspec file in the current directory. To
-override this use the name: option:
-
- gemspec name: 'specific_gem'
-
-To look in a different directory use the path: option:
-
- gemspec name: 'specific_gem', path: 'gemspecs'
-
-To depend on a gem unpacked into a local directory:
-
- gem 'modified_gem', path: 'vendor/modified_gem'
-
-To depend on a gem from git:
-
- gem 'private_gem', git: 'git@my.company.example:private_gem.git'
-
-To depend on a gem from github:
-
- gem 'private_gem', github: 'my_company/private_gem'
-
-To depend on a gem from a github gist:
-
- gem 'bang', gist: '1232884'
-
-Git, github and gist support the ref:, branch: and tag: options to specify a
-commit reference or hash, branch or tag respectively to use for the gem.
-
-Setting the submodules: option to true for git, github and gist dependencies
-causes fetching of submodules when fetching the repository.
-
-You can depend on multiple gems from a single repository with the git method:
-
- git 'https://github.com/rails/rails.git' do
- gem 'activesupport'
- gem 'activerecord'
- end
-
-Gem Sources
-===========
-
-RubyGems uses the default sources for regular `gem install` for gem
-dependencies files. Unlike bundler, you do need to specify a source.
-
-You can override the sources used for downloading gems with:
-
- source 'https://gem_server.example'
-
-You may specify multiple sources. Unlike bundler the prepend: option is not
-supported. Sources are used in-order, to prepend a source place it at the
-front of the list.
-
-Gem Platform
-============
-
-You can restrict gem dependencies to specific platforms with the #platform
-and #platforms methods:
-
- platform :ruby_21 do
- gem 'debugger'
- end
-
-See the bundler Gemfile manual page for a list of platforms supported in a gem
-dependencies file.:
-
- http://bundler.io/v1.6/man/gemfile.5.html
-
-Ruby Version and Engine Dependency
-==================================
-
-You can specifiy the version, engine and engine version of ruby to use with
-your gem dependencies file. If you are not running the specified version
-RubyGems will raise an exception.
-
-To depend on a specific version of ruby:
-
- ruby '2.1.2'
-
-To depend on a specific ruby engine:
-
- ruby '1.9.3', engine: 'jruby'
-
-To depend on a specific ruby engine version:
-
- ruby '1.9.3', engine: 'jruby', engine_version: '1.7.11'
-
-Grouping Dependencies
-=====================
-
-Gem dependencies may be placed in groups that can be excluded from install.
-Dependencies required for development or testing of your code may be excluded
-when installed in a production environment.
-
-A #gem dependency may be placed in a group using the group: option:
-
- gem 'minitest', group: :test
-
-To install dependencies from a gemfile without specific groups use the
-`--without` option for `gem install -g`:
-
- $ gem install -g --without test
-
-The group: option also accepts multiple groups if the gem fits in multiple
-categories.
-
-Multiple groups may be excluded during install by comma-separating the groups for `--without` or by specifying `--without` multiple times.
-
-The #group method can also be used to place gems in groups:
-
- group :test do
- gem 'minitest'
- gem 'minitest-emoji'
- end
-
-The #group method allows multiple groups.
-
-The #gemspec development dependencies are placed in the :development group by
-default. This may be overriden with the :development_group option:
-
- gemspec development_group: :other
-
- EOF
-
- PLATFORMS = <<-'EOF'
-RubyGems platforms are composed of three parts, a CPU, an OS, and a
-version. These values are taken from values in rbconfig.rb. You can view
-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 OS must match exactly.
- * The versions must match exactly unless one of the versions is nil.
-
-For commands that install, uninstall and list gems, you can override what
-RubyGems thinks your platform is with the --platform option. The platform
-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
-platform.
- EOF
-
- # NOTE when updating also update Gem::Command::HELP
-
- SUBCOMMANDS = [
- ["commands", :show_commands],
- ["options", Gem::Command::HELP],
- ["examples", EXAMPLES],
- ["gem_dependencies", GEM_DEPENDENCIES],
- ["platforms", PLATFORMS],
- ]
- # :startdoc:
-
- def initialize
- super 'help', "Provide help on the 'gem' command"
-
- @command_manager = Gem::CommandManager.instance
- end
-
- def usage # :nodoc:
- "#{program_name} ARGUMENT"
- end
-
- def execute
- arg = options[:args][0]
-
- _, help = SUBCOMMANDS.find do |command,|
- begins? command, arg
- end
-
- if help then
- if Symbol === help then
- send help
- else
- say help
- end
- return
- end
-
- if options[:help] then
- show_help
-
- elsif arg then
- show_command_help arg
-
- else
- say Gem::Command::HELP
- end
- end
-
- def show_commands # :nodoc:
- out = []
- out << "GEM commands are:"
- out << nil
-
- margin_width = 4
-
- desc_width = @command_manager.command_names.map { |n| n.size }.max + 4
-
- summary_width = 80 - margin_width - desc_width
- wrap_indent = ' ' * (margin_width + desc_width)
- format = "#{' ' * margin_width}%-#{desc_width}s%s"
-
- @command_manager.command_names.each do |cmd_name|
- command = @command_manager[cmd_name]
-
- summary =
- if command then
- command.summary
- else
- "[No command found for #{cmd_name}]"
- end
-
- 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
-
- 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
-
- 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'"
- end
- end
-
-end
-