aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--lib/rubygems/specification.rb4
-rw-r--r--test/rubygems/test_gem_specification.rb7
2 files changed, 11 insertions, 0 deletions
diff --git a/lib/rubygems/specification.rb b/lib/rubygems/specification.rb
index 5e326e081f..d3d6d9ca20 100644
--- a/lib/rubygems/specification.rb
+++ b/lib/rubygems/specification.rb
@@ -556,6 +556,10 @@ class Gem::Specification < Gem::BasicSpecification
# spec.add_runtime_dependency 'example', '~> 1.1', '>= 1.1.4'
def add_runtime_dependency(gem, *requirements)
+ if requirements.uniq.size != requirements.size
+ warn "WARNING: duplicate dependency #{requirements}"
+ end
+
add_dependency_with_type(gem, :runtime, requirements)
end
diff --git a/test/rubygems/test_gem_specification.rb b/test/rubygems/test_gem_specification.rb
index c4da82373a..cd00f74c93 100644
--- a/test/rubygems/test_gem_specification.rb
+++ b/test/rubygems/test_gem_specification.rb
@@ -3051,6 +3051,13 @@ Please report a bug if this causes problems.
end
end
+ def test_duplicate_runtime_dependency
+ expected = "WARNING: duplicate dependency [\"~> 3.0\", \"~> 3.0\"]\n"
+ assert_output nil, expected do
+ @a1.add_runtime_dependency "b", "~> 3.0", "~> 3.0"
+ end
+ end
+
def set_orig(cls)
s_cls = cls.singleton_class
s_cls.send :alias_method, :orig_unresolved_deps , :unresolved_deps