diff --git a/lib/naturalsorter/version.rb b/lib/naturalsorter/version.rb index 555804b..ed56bba 100644 --- a/lib/naturalsorter/version.rb +++ b/lib/naturalsorter/version.rb @@ -1,3 +1,3 @@ module Naturalsorter - VERSION = "3.0.1" + VERSION = "3.0.2" end diff --git a/lib/versioncmp.rb b/lib/versioncmp.rb index 55b6d24..17c3b36 100644 --- a/lib/versioncmp.rb +++ b/lib/versioncmp.rb @@ -163,6 +163,7 @@ def self.timestamp? part def self.pre_process val cleaned_version = replace_x_dev val cleaned_version = replace_wildcards cleaned_version + replace_snapshot cleaned_version replace_leading_v cleaned_version replace_99_does_not_exist cleaned_version replace_timestamps cleaned_version @@ -184,6 +185,12 @@ def self.replace_groovy val end end + def self.replace_snapshot val + if val.match(/\-SNAPSHOT/) + val.gsub!("-SNAPSHOT", "") + end + end + # Some glory Java Devs used the timestamp as version string # http://www.versioneye.com/package/commons-beanutils--commons-beanutils diff --git a/naturalsorter.gemspec b/naturalsorter.gemspec index 6d9423f..ea5171c 100644 --- a/naturalsorter.gemspec +++ b/naturalsorter.gemspec @@ -22,5 +22,5 @@ Gem::Specification.new do |s| # specify any dependencies here; for example: # s.add_development_dependency "rspec" # s.add_runtime_dependency "rest-client" - s.add_development_dependency "rspec", "2.14.1" + s.add_development_dependency "rspec", "3.2.0" end diff --git a/spec/naturalsorter_spec.rb b/spec/naturalsorter_spec.rb index b5aa231..a461f2f 100644 --- a/spec/naturalsorter_spec.rb +++ b/spec/naturalsorter_spec.rb @@ -116,28 +116,28 @@ describe "is_version_current?" do it "returns true" do - Naturalsorter::Sorter.is_version_current?("1.1.1", "1.1.9").should be_true + Naturalsorter::Sorter.is_version_current?("1.1.1", "1.1.9").should be_truthy end it "returns true" do - Naturalsorter::Sorter.is_version_current?("1.1.1", "1.1.2").should be_true + Naturalsorter::Sorter.is_version_current?("1.1.1", "1.1.2").should be_truthy end it "returns true" do - Naturalsorter::Sorter.is_version_current?("1.1.1", "1.1.12").should be_true + Naturalsorter::Sorter.is_version_current?("1.1.1", "1.1.12").should be_truthy end it "returns false" do - Naturalsorter::Sorter.is_version_current?("1.1.1", "1.2.0").should be_false + Naturalsorter::Sorter.is_version_current?("1.1.1", "1.2.0").should be_falsey end it "returns false" do - Naturalsorter::Sorter.is_version_current?("1.1.1", "1.2").should be_false + Naturalsorter::Sorter.is_version_current?("1.1.1", "1.2").should be_falsey end it "returns false" do - Naturalsorter::Sorter.is_version_current?("1.1.1", "2.0").should be_false + Naturalsorter::Sorter.is_version_current?("1.1.1", "2.0").should be_falsey end it "returns false" do - Naturalsorter::Sorter.is_version_current?("1.1.1", "2").should be_false + Naturalsorter::Sorter.is_version_current?("1.1.1", "2").should be_falsey end it "returns false" do - Naturalsorter::Sorter.is_version_current?("1.1", "2.0").should be_false + Naturalsorter::Sorter.is_version_current?("1.1", "2.0").should be_falsey end end @@ -182,25 +182,25 @@ describe "bigger?" do it "returns true" do - Naturalsorter::Sorter.bigger?("1.1", "1.0").should be_true + Naturalsorter::Sorter.bigger?("1.1", "1.0").should be_truthy end it "returns true" do - Naturalsorter::Sorter.bigger?("1.1", "20030211.134440").should be_true + Naturalsorter::Sorter.bigger?("1.1", "20030211.134440").should be_truthy end it "returns true" do - Naturalsorter::Sorter.bigger?("1.1", "20030211").should be_true + Naturalsorter::Sorter.bigger?("1.1", "20030211").should be_truthy end it "returns true" do - Naturalsorter::Sorter.bigger?("2.0", "1.0").should be_true + Naturalsorter::Sorter.bigger?("2.0", "1.0").should be_truthy end it "returns true" do - Naturalsorter::Sorter.bigger?("2.20", "2.9").should be_true + Naturalsorter::Sorter.bigger?("2.20", "2.9").should be_truthy end it "returns false" do - Naturalsorter::Sorter.bigger?("2.20", "2.20").should be_false + Naturalsorter::Sorter.bigger?("2.20", "2.20").should be_falsey end it "returns false" do - Naturalsorter::Sorter.bigger?("2.20", "3.0").should be_false + Naturalsorter::Sorter.bigger?("2.20", "3.0").should be_falsey end end @@ -208,31 +208,31 @@ describe "bigger_or_equal?" do it "returns true" do - Naturalsorter::Sorter.bigger_or_equal?("1.1", "1.0").should be_true + Naturalsorter::Sorter.bigger_or_equal?("1.1", "1.0").should be_truthy end it "returns true" do - Naturalsorter::Sorter.bigger_or_equal?("2.0", "1.0").should be_true + Naturalsorter::Sorter.bigger_or_equal?("2.0", "1.0").should be_truthy end it "returns true" do - Naturalsorter::Sorter.bigger_or_equal?("2.20", "2.9").should be_true + Naturalsorter::Sorter.bigger_or_equal?("2.20", "2.9").should be_truthy end it "returns true" do - Naturalsorter::Sorter.bigger_or_equal?("2.20", "2.20").should be_true + Naturalsorter::Sorter.bigger_or_equal?("2.20", "2.20").should be_truthy end it "returns true" do - Naturalsorter::Sorter.bigger_or_equal?("2.20", "2.20.0").should be_true + Naturalsorter::Sorter.bigger_or_equal?("2.20", "2.20.0").should be_truthy end it "returns true" do - Naturalsorter::Sorter.bigger_or_equal?("2.20", "2.20").should be_true + Naturalsorter::Sorter.bigger_or_equal?("2.20", "2.20").should be_truthy end it "returns true" do - Naturalsorter::Sorter.bigger_or_equal?("v3.2.0", "3.2.0").should be_true + Naturalsorter::Sorter.bigger_or_equal?("v3.2.0", "3.2.0").should be_truthy end it "returns true" do - Naturalsorter::Sorter.bigger_or_equal?("v3.2.0", "3.1.0").should be_true + Naturalsorter::Sorter.bigger_or_equal?("v3.2.0", "3.1.0").should be_truthy end it "returns false" do - Naturalsorter::Sorter.bigger_or_equal?("2.20", "3.0").should be_false + Naturalsorter::Sorter.bigger_or_equal?("2.20", "3.0").should be_falsey end end @@ -240,25 +240,25 @@ describe "smaller?" do it "returns false" do - Naturalsorter::Sorter.smaller?("1.1", "1.0").should be_false + Naturalsorter::Sorter.smaller?("1.1", "1.0").should be_falsey end it "returns false" do - Naturalsorter::Sorter.smaller?("2.0", "1.0").should be_false + Naturalsorter::Sorter.smaller?("2.0", "1.0").should be_falsey end it "returns false" do - Naturalsorter::Sorter.smaller?("2.20", "2.9").should be_false + Naturalsorter::Sorter.smaller?("2.20", "2.9").should be_falsey end it "returns false" do - Naturalsorter::Sorter.smaller?("2.20", "2.20").should be_false + Naturalsorter::Sorter.smaller?("2.20", "2.20").should be_falsey end it "returns true" do - Naturalsorter::Sorter.smaller?("2.20", "3.0").should be_true + Naturalsorter::Sorter.smaller?("2.20", "3.0").should be_truthy end it "returns false" do - Naturalsorter::Sorter.smaller?("2.0", "2.0").should be_false + Naturalsorter::Sorter.smaller?("2.0", "2.0").should be_falsey end it "returns false" do - Naturalsorter::Sorter.smaller?("2.0", "2.0.0").should be_false + Naturalsorter::Sorter.smaller?("2.0", "2.0.0").should be_falsey end end @@ -266,28 +266,28 @@ describe "smaller_or_equal?" do it "returns false" do - Naturalsorter::Sorter.smaller_or_equal?("1.1", "1.0").should be_false + Naturalsorter::Sorter.smaller_or_equal?("1.1", "1.0").should be_falsey end it "returns false" do - Naturalsorter::Sorter.smaller_or_equal?("2.0", "1.0").should be_false + Naturalsorter::Sorter.smaller_or_equal?("2.0", "1.0").should be_falsey end it "returns false" do - Naturalsorter::Sorter.smaller_or_equal?("2.20", "2.9").should be_false + Naturalsorter::Sorter.smaller_or_equal?("2.20", "2.9").should be_falsey end it "returns false" do - Naturalsorter::Sorter.smaller_or_equal?("2.20", "2.20").should be_true + Naturalsorter::Sorter.smaller_or_equal?("2.20", "2.20").should be_truthy end it "returns false" do - Naturalsorter::Sorter.smaller_or_equal?("2.20.0", "2.20").should be_true + Naturalsorter::Sorter.smaller_or_equal?("2.20.0", "2.20").should be_truthy end it "returns true" do - Naturalsorter::Sorter.smaller_or_equal?("2.20", "2.20").should be_true + Naturalsorter::Sorter.smaller_or_equal?("2.20", "2.20").should be_truthy end it "returns true" do - Naturalsorter::Sorter.smaller_or_equal?("2.20", "3.0").should be_true + Naturalsorter::Sorter.smaller_or_equal?("2.20", "3.0").should be_truthy end it "returns true" do - Naturalsorter::Sorter.smaller_or_equal?("2.20", "v3.0").should be_true + Naturalsorter::Sorter.smaller_or_equal?("2.20", "v3.0").should be_truthy end end diff --git a/spec/version_tag_recognizer_spec.rb b/spec/version_tag_recognizer_spec.rb index 8258038..3792be9 100644 --- a/spec/version_tag_recognizer_spec.rb +++ b/spec/version_tag_recognizer_spec.rb @@ -3,145 +3,145 @@ describe VersionTagRecognizer do it "release? is true" do - VersionTagRecognizer.release?("1.1").should be_true + VersionTagRecognizer.release?("1.1").should be_truthy end it "release? is true" do - VersionTagRecognizer.release?("1.0.0").should be_true + VersionTagRecognizer.release?("1.0.0").should be_truthy end it "release? is true" do - VersionTagRecognizer.release?("1").should be_true + VersionTagRecognizer.release?("1").should be_truthy end it "release? is true" do - VersionTagRecognizer.release?("3.3.2.GA").should be_true + VersionTagRecognizer.release?("3.3.2.GA").should be_truthy end it "release? is true" do - VersionTagRecognizer.release?("4.1.5.SP1").should be_true + VersionTagRecognizer.release?("4.1.5.SP1").should be_truthy end it "release? is true" do - VersionTagRecognizer.release?("3.1.0.RELEASE").should be_true + VersionTagRecognizer.release?("3.1.0.RELEASE").should be_truthy end it "release? is true" do - VersionTagRecognizer.release?("3.2.0.BUILD").should be_false + VersionTagRecognizer.release?("3.2.0.BUILD").should be_falsey end it "release? is true" do - VersionTagRecognizer.release?("3.2.0buiLd").should be_false + VersionTagRecognizer.release?("3.2.0buiLd").should be_falsey end it "release? is true" do - VersionTagRecognizer.release?("3.2.0.Final").should be_true + VersionTagRecognizer.release?("3.2.0.Final").should be_truthy end it "release? is true" do - VersionTagRecognizer.release?("3.2.0FINAL").should be_true + VersionTagRecognizer.release?("3.2.0FINAL").should be_truthy end it "release? is false" do - VersionTagRecognizer.release?("1.1.pre").should be_false + VersionTagRecognizer.release?("1.1.pre").should be_falsey end it "release? is false" do - VersionTagRecognizer.release?("2.5.6.SEC03").should be_false + VersionTagRecognizer.release?("2.5.6.SEC03").should be_falsey end it "release? is false" do - VersionTagRecognizer.release?("2.3.8.pre1").should be_false + VersionTagRecognizer.release?("2.3.8.pre1").should be_falsey end it "release? is false" do - VersionTagRecognizer.release?("2.3.9.pre").should be_false + VersionTagRecognizer.release?("2.3.9.pre").should be_falsey end it "release? is false" do - VersionTagRecognizer.release?("3.0.0.beta4").should be_false + VersionTagRecognizer.release?("3.0.0.beta4").should be_falsey end it "release? is false" do - VersionTagRecognizer.release?("3.0.0.BETA4").should be_false + VersionTagRecognizer.release?("3.0.0.BETA4").should be_falsey end it "release? is false" do - VersionTagRecognizer.release?("3.0.0.beta").should be_false + VersionTagRecognizer.release?("3.0.0.beta").should be_falsey end it "release? is false" do - VersionTagRecognizer.release?("3.0.0.rc").should be_false + VersionTagRecognizer.release?("3.0.0.rc").should be_falsey end it "release? is false" do - VersionTagRecognizer.release?("3.0.0.rc2").should be_false + VersionTagRecognizer.release?("3.0.0.rc2").should be_falsey end it "release? is false" do - VersionTagRecognizer.release?("3.0.0.RC2").should be_false + VersionTagRecognizer.release?("3.0.0.RC2").should be_falsey end it "release? is false" do - VersionTagRecognizer.release?("2.0.x-dev").should be_false + VersionTagRecognizer.release?("2.0.x-dev").should be_falsey end it "release? is false" do - VersionTagRecognizer.release?("2.0.x-DEV").should be_false + VersionTagRecognizer.release?("2.0.x-DEV").should be_falsey end it "release? is false" do - VersionTagRecognizer.release?("1.8b1").should be_false + VersionTagRecognizer.release?("1.8b1").should be_falsey end it "release? is false" do - VersionTagRecognizer.release?("1.8B1").should be_false + VersionTagRecognizer.release?("1.8B1").should be_falsey end it "release? is false" do - VersionTagRecognizer.release?("1.1.3a").should be_false + VersionTagRecognizer.release?("1.1.3a").should be_falsey end it "release? is false" do - VersionTagRecognizer.release?("1.1.3A").should be_false + VersionTagRecognizer.release?("1.1.3A").should be_falsey end it "release? is false" do - VersionTagRecognizer.release?("1.SNAPSHOT").should be_false + VersionTagRecognizer.release?("1.SNAPSHOT").should be_falsey end it "release? is false" do - VersionTagRecognizer.release?("1.snapshot").should be_false + VersionTagRecognizer.release?("1.snapshot").should be_falsey end it "release? is false" do - VersionTagRecognizer.release?("1.M1").should be_false + VersionTagRecognizer.release?("1.M1").should be_falsey end it "release? is false" do - VersionTagRecognizer.release?("2.0-m4").should be_false + VersionTagRecognizer.release?("2.0-m4").should be_falsey end it "is alpha? is true" do - VersionTagRecognizer.alpha?("2.0.alpha").should be_true + VersionTagRecognizer.alpha?("2.0.alpha").should be_truthy end it "is alpha? is true" do - VersionTagRecognizer.alpha?("2.1.0alpha").should be_true + VersionTagRecognizer.alpha?("2.1.0alpha").should be_truthy end it "is alpha? is false" do - VersionTagRecognizer.alpha?("2.0.1").should be_false + VersionTagRecognizer.alpha?("2.0.1").should be_falsey end it "is alpha? is false" do - VersionTagRecognizer.alpha?("2.1.0-BETA1").should be_false + VersionTagRecognizer.alpha?("2.1.0-BETA1").should be_falsey end it "is tagged? is true" do - VersionTagRecognizer.tagged?("2.1.0alpha").should be_true + VersionTagRecognizer.tagged?("2.1.0alpha").should be_truthy end @@ -162,27 +162,27 @@ it "is beta? is true" do - VersionTagRecognizer.beta?("2.0.beta").should be_true + VersionTagRecognizer.beta?("2.0.beta").should be_truthy end it "is beta? is true" do - VersionTagRecognizer.beta?("2.1.0beta").should be_true + VersionTagRecognizer.beta?("2.1.0beta").should be_truthy end it "is beta? is false" do - VersionTagRecognizer.beta?("2.0.1").should be_false + VersionTagRecognizer.beta?("2.0.1").should be_falsey end it "is beta? is true" do - VersionTagRecognizer.beta?("2.2.0-BETA2").should be_true + VersionTagRecognizer.beta?("2.2.0-BETA2").should be_truthy end it "is beta? is true" do - VersionTagRecognizer.beta?("2.1.0-BETA1").should be_true + VersionTagRecognizer.beta?("2.1.0-BETA1").should be_truthy end it "is tagged? is true" do - VersionTagRecognizer.tagged?("2.1.0-BETA1").should be_true + VersionTagRecognizer.tagged?("2.1.0-BETA1").should be_truthy end it "remove_tag is right" do @@ -192,64 +192,64 @@ it "is dev? is true" do - VersionTagRecognizer.dev?("dev-master").should be_true + VersionTagRecognizer.dev?("dev-master").should be_truthy end it "is dev? is true" do - VersionTagRecognizer.dev?("dev-progress-helper").should be_true + VersionTagRecognizer.dev?("dev-progress-helper").should be_truthy end it "is dev? is true" do - VersionTagRecognizer.dev?("dev-deprecated").should be_true + VersionTagRecognizer.dev?("dev-deprecated").should be_truthy end it "is dev? is true" do - VersionTagRecognizer.dev?("2.2.x-dev").should be_true + VersionTagRecognizer.dev?("2.2.x-dev").should be_truthy end it "is dev? is false" do - VersionTagRecognizer.dev?("2.0.1").should be_false + VersionTagRecognizer.dev?("2.0.1").should be_falsey end it "is rc? is true" do - VersionTagRecognizer.rc?("2.0.rc").should be_true + VersionTagRecognizer.rc?("2.0.rc").should be_truthy end it "is rc? is true" do - VersionTagRecognizer.rc?("2.1.0rc").should be_true + VersionTagRecognizer.rc?("2.1.0rc").should be_truthy end it "is rc? is true" do - VersionTagRecognizer.rc?("2.2.0-RC3").should be_true + VersionTagRecognizer.rc?("2.2.0-RC3").should be_truthy end it "is rc? is false" do - VersionTagRecognizer.rc?("2.0.1").should be_false + VersionTagRecognizer.rc?("2.0.1").should be_falsey end it "is snapshot? is true" do - VersionTagRecognizer.snapshot?("2.0.snapshot").should be_true + VersionTagRecognizer.snapshot?("2.0.snapshot").should be_truthy end it "is snapshot? is true" do - VersionTagRecognizer.snapshot?("2.1.0snapshot").should be_true + VersionTagRecognizer.snapshot?("2.1.0snapshot").should be_truthy end it "is snapshot? is true" do - VersionTagRecognizer.snapshot?("2.2.0-snapshot3").should be_true + VersionTagRecognizer.snapshot?("2.2.0-snapshot3").should be_truthy end it "is snapshot? is false" do - VersionTagRecognizer.snapshot?("2.0.1").should be_false + VersionTagRecognizer.snapshot?("2.0.1").should be_falsey end it 'is a build' do - VersionTagRecognizer.build?("1.3.0-build.2921+sha.02c0ed2").should be_true + VersionTagRecognizer.build?("1.3.0-build.2921+sha.02c0ed2").should be_truthy end @@ -296,34 +296,34 @@ it "does fit stability" do - VersionTagRecognizer.does_it_fit_stability?( "2.2.1", "stable" ).should be_true + VersionTagRecognizer.does_it_fit_stability?( "2.2.1", "stable" ).should be_truthy end it "does not fit stability" do - VersionTagRecognizer.does_it_fit_stability?( "2.2.1-BETA", "stable" ).should be_false + VersionTagRecognizer.does_it_fit_stability?( "2.2.1-BETA", "stable" ).should be_falsey end it "does not fit stability" do - VersionTagRecognizer.does_it_fit_stability?( "1.3.0-build.2921+sha.02c0ed2", "stable" ).should be_false + VersionTagRecognizer.does_it_fit_stability?( "1.3.0-build.2921+sha.02c0ed2", "stable" ).should be_falsey end it "does not fit stability" do - VersionTagRecognizer.does_it_fit_stability?( "1.3.0-build.2809+sha.94bcc03", "stable" ).should be_false + VersionTagRecognizer.does_it_fit_stability?( "1.3.0-build.2809+sha.94bcc03", "stable" ).should be_falsey end it "does fit stability" do - VersionTagRecognizer.does_it_fit_stability?( "2.2.1-BETA", "alpha" ).should be_true + VersionTagRecognizer.does_it_fit_stability?( "2.2.1-BETA", "alpha" ).should be_truthy end it "does fit stability" do - VersionTagRecognizer.does_it_fit_stability?( "2.2.1-BETA", "beta" ).should be_true + VersionTagRecognizer.does_it_fit_stability?( "2.2.1-BETA", "beta" ).should be_truthy end it "does fit stability" do - VersionTagRecognizer.does_it_fit_stability?( "2.2.x-dev", "dev" ).should be_true + VersionTagRecognizer.does_it_fit_stability?( "2.2.x-dev", "dev" ).should be_truthy end it "does not fit stability" do - VersionTagRecognizer.does_it_fit_stability?( "2.2.x-dev", "alpha" ).should be_false + VersionTagRecognizer.does_it_fit_stability?( "2.2.x-dev", "alpha" ).should be_falsey end it "does not fit stability" do - VersionTagRecognizer.does_it_fit_stability?( "2.2.x-dev", "RC" ).should be_false + VersionTagRecognizer.does_it_fit_stability?( "2.2.x-dev", "RC" ).should be_falsey end it "does fit stability" do - VersionTagRecognizer.does_it_fit_stability?( "2.2.1-RC", "RC" ).should be_true + VersionTagRecognizer.does_it_fit_stability?( "2.2.1-RC", "RC" ).should be_truthy end diff --git a/spec/versioncmp_spec.rb b/spec/versioncmp_spec.rb index 484b1bd..9382078 100644 --- a/spec/versioncmp_spec.rb +++ b/spec/versioncmp_spec.rb @@ -182,4 +182,16 @@ Versioncmp.compare("3.0", "3.0.0").should eql(0) end + it "3.1-SNAPSHOT is equal to 3.1-SNAPSHOT" do + Versioncmp.compare("3.1-SNAPSHOT", "3.1-SNAPSHOT").should eql(0) + end + + it "3.1-SNAPSHOT is smaller than 3.2-SNAPSHOT" do + Versioncmp.compare("3.1-SNAPSHOT", "3.2-SNAPSHOT").should eql(-1) + end + + it "3.1 is smaller than 3.2-SNAPSHOT" do + Versioncmp.compare("3.1", "3.2-SNAPSHOT").should eql(-1) + end + end