summaryrefslogtreecommitdiff
path: root/lib/bundler/endpoint_specification.rb
diff options
context:
space:
mode:
Diffstat (limited to 'lib/bundler/endpoint_specification.rb')
-rw-r--r--lib/bundler/endpoint_specification.rb19
1 files changed, 17 insertions, 2 deletions
diff --git a/lib/bundler/endpoint_specification.rb b/lib/bundler/endpoint_specification.rb
index 21a6c85c5a..c46f4cd277 100644
--- a/lib/bundler/endpoint_specification.rb
+++ b/lib/bundler/endpoint_specification.rb
@@ -3,14 +3,16 @@ module Bundler
class EndpointSpecification < Gem::Specification
include MatchPlatform
- attr_reader :name, :version, :platform, :dependencies
+ attr_reader :name, :version, :platform, :dependencies, :required_rubygems_version, :required_ruby_version, :checksum
attr_accessor :source, :remote
- def initialize(name, version, platform, dependencies)
+ def initialize(name, version, platform, dependencies, metadata = {})
@name = name
@version = version
@platform = platform
@dependencies = dependencies
+
+ parse_metadata(metadata)
end
def fetch_platform
@@ -96,5 +98,18 @@ module Bundler
def local_specification_path
"#{base_dir}/specifications/#{full_name}.gemspec"
end
+
+ def parse_metadata(data)
+ data.each do |k, v|
+ case k.to_s
+ when "checksum"
+ @checksum = v.last
+ when "rubygems"
+ @required_rubygems_version = Gem::Requirement.new(v) if v
+ when "ruby"
+ @required_ruby_version = Gem::Requirement.new(v) if v
+ end
+ end
+ end
end
end