diff options
author | bronzdoc <[email protected]> | 2019-09-29 08:41:49 -0600 |
---|---|---|
committer | Nobuyoshi Nakada <[email protected]> | 2019-10-05 10:50:02 +0900 |
commit | b659c1b92f3d5f251a3436073cd60d955d5fc457 (patch) | |
tree | 0572ba068738b291d7b99abaa9430265a0e51817 | |
parent | 871005bdd2044ef7bd532a7cc4f0756217161f97 (diff) |
[rubygems/rubygems] Add Gem::Dependency#identity method
https://github.com/rubygems/rubygems/commit/05146bb2fd
-rw-r--r-- | lib/rubygems/dependency.rb | 14 | ||||
-rw-r--r-- | test/rubygems/test_gem_dependency.rb | 7 |
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 |