class Gem::Commands::FetchCommand

Public Class Methods

new() click to toggle source
Calls superclass method Gem::Command.new
# File lib/rubygems/commands/fetch_command.rb, line 10
def initialize
 super 'fetch', 'Download a gem and place it in the current directory'
 add_bulk_threshold_option
 add_proxy_option
 add_source_option
 add_clear_sources_option
 add_version_option
 add_platform_option
 add_prerelease_option
end

Public Instance Methods

execute() click to toggle source
# File lib/rubygems/commands/fetch_command.rb, line 45
def execute
 version = options[:version] || Gem::Requirement.default
 platform = Gem.platforms.last
 gem_names = get_all_gem_names
 gem_names.each do |gem_name|
 dep = Gem::Dependency.new gem_name, version
 dep.prerelease = options[:prerelease]
 specs_and_sources, errors =
 Gem::SpecFetcher.fetcher.spec_for_dependency dep
 if platform then
 filtered = specs_and_sources.select { |s,| s.platform == platform }
 specs_and_sources = filtered unless filtered.empty?
 end
 spec, source = specs_and_sources.max_by { |s,| s.version }
 if spec.nil? then
 show_lookup_failure gem_name, version, errors, options[:domain]
 next
 end
 source.download spec
 say "Downloaded #{spec.full_name}"
 end
end