Skip to content

Commit b459e3e

Browse files
author
R. Tyler Croy
committed
Merge pull request #268 from michaelwoodson/fix-nonint-version-ranges
Fix range check for string versions
2 parents e030a6b + 932889a commit b459e3e

File tree

3 files changed

+30
-16
lines changed

3 files changed

+30
-16
lines changed

.travis.yml

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,9 @@
11
language: groovy
22
sudo: false
3+
addons:
4+
apt:
5+
packages:
6+
- oracle-java8-installer
37

48
install:
59
- ./gradlew clean

jruby-gradle-base-plugin/src/main/groovy/com/github/jrubygradle/internal/GemVersion.groovy

Lines changed: 2 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -169,27 +169,13 @@ class GemVersion {
169169
return 1
170170
}
171171

172-
int aaObject
173-
int bbObject
174-
175172
if (aDigits[index].isInteger() && bDigits[index].isInteger()) {
176173
// compare them as number
177-
aaObject = aDigits[index] as int
178-
bbObject = bDigits[index] as int
174+
aDigits[index] as int <=> bDigits[index] as int
179175
}
180176
else {
181177
// compare them as string
182-
aaObject = aDigits[index]
183-
bbObject = bDigits[index]
184-
}
185-
if (aaObject < bbObject) {
186-
-1
187-
}
188-
else if (aaObject > bbObject) {
189-
1
190-
}
191-
else {
192-
0
178+
aDigits[index] <=> bDigits[index]
193179
}
194180
}
195181

jruby-gradle-base-plugin/src/test/groovy/com/github/jrubygradle/internal/GemVersionSpec.groovy

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -178,4 +178,28 @@ class GemVersionSpec extends Specification {
178178
expect:
179179
subject.intersect('[1.2.4, 1.2.4]').conflict() == true
180180
}
181+
182+
def "finds no conflicts in non-integer version ranges"() {
183+
given:
184+
GemVersion subject = new GemVersion('[1.2.bar, 1.2.foo]')
185+
186+
expect:
187+
!subject.conflict()
188+
}
189+
190+
def "finds conflicts in non-integer version ranges"() {
191+
given:
192+
GemVersion subject = new GemVersion('[1.2.foo, 1.2.bar]')
193+
194+
expect:
195+
subject.conflict()
196+
}
197+
198+
def "does not throw an exception for a '+' version"() {
199+
when:
200+
new GemVersion('+').conflict()
201+
202+
then:
203+
notThrown(Exception)
204+
}
181205
}

0 commit comments

Comments
 (0)