diff options
Diffstat (limited to 'lib/rubygems/dependency_resolver/index_specification.rb')
-rw-r--r-- | lib/rubygems/dependency_resolver/index_specification.rb | 53 |
1 files changed, 53 insertions, 0 deletions
diff --git a/lib/rubygems/dependency_resolver/index_specification.rb b/lib/rubygems/dependency_resolver/index_specification.rb new file mode 100644 index 0000000000..371018ba44 --- /dev/null +++ b/lib/rubygems/dependency_resolver/index_specification.rb @@ -0,0 +1,53 @@ +## +# Represents a possible Specification object returned +# from IndexSet. Used to delay needed to download full +# Specification objects when only the +name+ and +version+ +# are needed. + +class Gem::DependencyResolver::IndexSpecification + + attr_reader :name + + attr_reader :source + + attr_reader :version + + def initialize set, name, version, source, plat + @set = set + @name = name + @version = version + @source = source + @platform = plat + + @spec = nil + end + + def dependencies + spec.dependencies + end + + def full_name + "#{@name}-#{@version}" + end + + def inspect # :nodoc: + '#<%s %s source %s>' % [self.class, full_name, @source] + end + + def pretty_print q # :nodoc: + q.group 2, '[Index specification', ']' do + q.breakable + q.text full_name + + q.breakable + q.text ' source ' + q.pp @source + end + end + + def spec + @spec ||= @set.load_spec(@name, @version, @source) + end + +end + |