aboutsummaryrefslogtreecommitdiffstats
path: root/lib/rubygems/source
diff options
context:
space:
mode:
authordrbrain <drbrain@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2013-08-26 20:24:51 +0000
committerdrbrain <drbrain@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2013-08-26 20:24:51 +0000
commite487a7f53cffbadf0bf15ff169c9cb5898503250 (patch)
treeeaa80eb4ced6fcdcc8b327d1cc5e47f66703fd1b /lib/rubygems/source
parentcddd93a57568966b416e300529bdffc0c7e87b51 (diff)
downloadruby-e487a7f53cffbadf0bf15ff169c9cb5898503250.tar.gz
* lib/rubygems: Import RubyGems 2.1.0 Release Candidate
* test/rubygems: ditto. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@42693 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'lib/rubygems/source')
-rw-r--r--lib/rubygems/source/local.rb9
-rw-r--r--lib/rubygems/source/specific_file.rb28
2 files changed, 33 insertions, 4 deletions
diff --git a/lib/rubygems/source/local.rb b/lib/rubygems/source/local.rb
index 7392ff0e8e..642dda1e44 100644
--- a/lib/rubygems/source/local.rb
+++ b/lib/rubygems/source/local.rb
@@ -1,8 +1,8 @@
-require 'rubygems/source'
-
class Gem::Source::Local < Gem::Source
def initialize
- @uri = nil
+ @specs = nil
+ @api_uri = nil
+ @uri = nil
end
##
@@ -22,7 +22,8 @@ class Gem::Source::Local < Gem::Source
end
def inspect # :nodoc:
- "#<%s specs: %p>" % [self.class, @specs.keys]
+ keys = @specs ? @specs.keys.sort : 'NOT LOADED'
+ "#<%s specs: %p>" % [self.class, keys]
end
def load_specs(type)
diff --git a/lib/rubygems/source/specific_file.rb b/lib/rubygems/source/specific_file.rb
index d296e617cc..8d328b38c2 100644
--- a/lib/rubygems/source/specific_file.rb
+++ b/lib/rubygems/source/specific_file.rb
@@ -25,4 +25,32 @@ class Gem::Source::SpecificFile < Gem::Source
raise Gem::Exception, "Unable to download '#{spec.full_name}'"
end
+ def pretty_print q # :nodoc:
+ q.group 2, '[Local:', ']' do
+ q.breakable
+ q.text @path
+ end
+ end
+
+ ##
+ # Orders this source against +other+.
+ #
+ # If +other+ is a SpecificFile from a different gem name +nil+ is returned.
+ #
+ # If +other+ is a SpecificFile from the same gem name the versions are
+ # compared using Gem::Version#<=>
+ #
+ # Otherwise Gem::Source#<=> is used.
+
+ def <=> other
+ case other
+ when Gem::Source::SpecificFile then
+ return nil if @spec.name != other.spec.name
+
+ @spec.version <=> other.spec.version
+ else
+ super
+ end
+ end
+
end