diff options
author | drbrain <drbrain@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2012-12-23 00:35:09 +0000 |
---|---|---|
committer | drbrain <drbrain@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2012-12-23 00:35:09 +0000 |
commit | 6fe32d72667945605ef710395706e04491bfd86a (patch) | |
tree | 7fe4b8f779ff75067b45f48502864fb05787cee7 /lib/rubygems.rb | |
parent | c47c095b9740e7c19d6fdca29ab661c1089221d4 (diff) | |
download | ruby-6fe32d72667945605ef710395706e04491bfd86a.tar.gz |
* 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
Diffstat (limited to 'lib/rubygems.rb')
-rw-r--r-- | lib/rubygems.rb | 57 |
1 files changed, 37 insertions, 20 deletions
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,34 +765,36 @@ 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. def self.ruby_version |