From 6fe32d72667945605ef710395706e04491bfd86a Mon Sep 17 00:00:00 2001 From: drbrain Date: Sun, 23 Dec 2012 00:35:09 +0000 Subject: * lib/rubygems/commands/check_command.rb: Added --doctor and --dry-run options to clean up after failed uninstallation. * test/rubygems/test_gem_commands_check_command.rb: Test for above. * lib/rubygems/commands/push_command.rb: Allow pushes from RubyGems 2.0.0.preview3 * lib/rubygems/commands/update_command.rb: Use Gem.ruby_version * lib/rubygems/dependency.rb: Update style. * lib/rubygems/installer.rb: Ensure installed gem specifications will be useable. Refactor. * test/rubygems/test_gem_installer.rb: ditto. * lib/rubygems/validator.rb: Fixed bug with unreadable files. * lib/rubygems.rb: Fixed broken methods. * test/rubygems/test_gem.rb: Test for above. * test/rubygems/test_gem_commands_push_command.rb: Fixed overridden Gem.latest_rubygems_version git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@38564 b2dd03c8-39d4-4d8f-98ff-823fe69b080e --- lib/rubygems.rb | 57 +++++++++++++++++++++++++++++++++++++-------------------- 1 file changed, 37 insertions(+), 20 deletions(-) (limited to 'lib/rubygems.rb') diff --git a/lib/rubygems.rb b/lib/rubygems.rb index 29bbb586b5..77d1650056 100644 --- a/lib/rubygems.rb +++ b/lib/rubygems.rb @@ -98,7 +98,7 @@ require 'rbconfig' module Gem - VERSION = '2.0.0.preview2.2' + VERSION = '2.0.0.preview3' end # Must be first since it unloads the prelude from 1.9.2 @@ -123,7 +123,22 @@ module Gem /wince/i, ] - GEM_DEP_FILES = %w!gem.deps.rb Gemfile Isolate! + GEM_DEP_FILES = %w[ + gem.deps.rb + Gemfile + Isolate + ] + + ## + # Subdirectories in a gem repository + + REPOSITORY_SUBDIRECTORIES = %w[ + build_info + cache + doc + gems + specifications + ] @@win_platform = nil @@ -388,7 +403,7 @@ module Gem require 'fileutils' - %w[cache build_info doc gems specifications].each do |name| + REPOSITORY_SUBDIRECTORIES.each do |name| subdir = File.join dir, name next if File.exist? subdir FileUtils.mkdir_p subdir rescue nil # in case of perms issues -- lame @@ -750,33 +765,35 @@ module Gem @ruby end - # DOC: needs doc'd or :nodoc'd + ## + # Returns the latest release-version specification for the gem +name+. + def self.latest_spec_for name - dependency = Gem::Dependency.new name - fetcher = Gem::SpecFetcher.fetcher - spec_tuples = fetcher.find_matching dependency + dependency = Gem::Dependency.new name + fetcher = Gem::SpecFetcher.fetcher + spec_tuples, = fetcher.spec_for_dependency dependency - match = spec_tuples.select { |(n, _, p), _| - n == name and Gem::Platform.match p - }.sort_by { |(_, version, _), _| - version - }.last + spec, = spec_tuples.first - match and fetcher.fetch_spec(*match) + spec end - # DOC: needs doc'd or :nodoc'd - def self.latest_version_for name - spec = latest_spec_for name - spec and spec.version - end + ## + # Returns the latest release version of RubyGems. - # DOC: needs doc'd or :nodoc'd def self.latest_rubygems_version - latest_version_for("rubygems-update") or + latest_version_for('rubygems-update') or raise "Can't find 'rubygems-update' in any repo. Check `gem source list`." end + ## + # Returns the version of the latest release-version of gem +name+ + + def self.latest_version_for name + spec = latest_spec_for name + spec and spec.version + end + ## # A Gem::Version for the currently running ruby. -- cgit v1.2.3