aboutsummaryrefslogtreecommitdiffstats
path: root/lib/rubygems/dependency_resolver/installed_specification.rb
diff options
context:
space:
mode:
Diffstat (limited to 'lib/rubygems/dependency_resolver/installed_specification.rb')
-rw-r--r--lib/rubygems/dependency_resolver/installed_specification.rb40
1 files changed, 16 insertions, 24 deletions
diff --git a/lib/rubygems/dependency_resolver/installed_specification.rb b/lib/rubygems/dependency_resolver/installed_specification.rb
index ca20ace61e..4b591661a8 100644
--- a/lib/rubygems/dependency_resolver/installed_specification.rb
+++ b/lib/rubygems/dependency_resolver/installed_specification.rb
@@ -1,12 +1,8 @@
-class Gem::DependencyResolver::InstalledSpecification
+##
+# An InstalledSpecification represents a gem that is already installed
+# locally.
- attr_reader :spec
-
- def initialize set, spec, source=nil
- @set = set
- @source = source
- @spec = spec
- end
+class Gem::DependencyResolver::InstalledSpecification < Gem::DependencyResolver::SpecSpecification
def == other # :nodoc:
self.class === other and
@@ -14,29 +10,25 @@ class Gem::DependencyResolver::InstalledSpecification
@spec == other.spec
end
- def dependencies
- @spec.dependencies
- end
-
- def full_name
- "#{@spec.name}-#{@spec.version}"
- end
+ ##
+ # Returns +true+ if this gem is installable for the current platform.
- def name
- @spec.name
+ def installable_platform?
+ # BACKCOMPAT If the file is coming out of a specified file, then we
+ # ignore the platform. This code can be removed in RG 3.0.
+ if @source.kind_of? Gem::Source::SpecificFile
+ return true
+ else
+ Gem::Platform.match @spec.platform
+ end
end
- def platform
- @spec.platform
- end
+ ##
+ # The source for this specification
def source
@source ||= Gem::Source::Installed.new
end
- def version
- @spec.version
- end
-
end