diff options
-rw-r--r-- | lib/rubygems/specification.rb | 4 | ||||
-rw-r--r-- | test/rubygems/test_gem_specification.rb | 7 |
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 |