aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorbronzdoc <lsagastume1990@gmail.com>2019-09-29 08:41:49 -0600
committerNobuyoshi Nakada <nobu@ruby-lang.org>2019-10-05 10:50:02 +0900
commitb659c1b92f3d5f251a3436073cd60d955d5fc457 (patch)
tree0572ba068738b291d7b99abaa9430265a0e51817
parent871005bdd2044ef7bd532a7cc4f0756217161f97 (diff)
downloadruby-b659c1b92f3d5f251a3436073cd60d955d5fc457.tar.gz
[rubygems/rubygems] Add Gem::Dependency#identity method
https://github.com/rubygems/rubygems/commit/05146bb2fd
-rw-r--r--lib/rubygems/dependency.rb14
-rw-r--r--test/rubygems/test_gem_dependency.rb7
2 files changed, 21 insertions, 0 deletions
diff --git a/lib/rubygems/dependency.rb b/lib/rubygems/dependency.rb
index b09a5fe8ef..0c58815c85 100644
--- a/lib/rubygems/dependency.rb
+++ b/lib/rubygems/dependency.rb
@@ -334,4 +334,18 @@ class Gem::Dependency
matches.first
end
+ def identity
+ if prerelease?
+ if specific?
+ :complete
+ else
+ :abs_latest
+ end
+ elsif latest_version?
+ :latest
+ else
+ :released
+ end
+ end
+
end
diff --git a/test/rubygems/test_gem_dependency.rb b/test/rubygems/test_gem_dependency.rb
index bf2f065573..0caab10d32 100644
--- a/test/rubygems/test_gem_dependency.rb
+++ b/test/rubygems/test_gem_dependency.rb
@@ -385,4 +385,11 @@ class TestGemDependency < Gem::TestCase
assert_match "Could not find 'b' (= 2.0) among 1 total gem(s)", e.message
end
+ def test_identity
+ assert_equal dep("a", "= 1").identity, :released
+ assert_equal dep("a", "= 1.a").identity, :complete
+ assert_equal dep("a", " >= 1.a").identity, :abs_latest
+ assert_equal dep("a").identity, :latest
+ end
+
end