diff --git a/lib/semantic.rb b/lib/semantic.rb index 801cafd..d0a9989 100644 --- a/lib/semantic.rb +++ b/lib/semantic.rb @@ -1,4 +1,4 @@ module Semantic - GEM_VERSION = '1.6.0' + GEM_VERSION = '1.6.1' autoload :Version, 'semantic/version' end diff --git a/lib/semantic/version.rb b/lib/semantic/version.rb index 6984c48..7eda70c 100644 --- a/lib/semantic/version.rb +++ b/lib/semantic/version.rb @@ -27,7 +27,7 @@ def build=(b) end def identifiers(pre) - array = pre.split(".") + array = pre.split(/[\.\-]/) array.each_with_index {|e,i| array[i] = Integer(e) if /\A\d+\z/.match(e)} return array end diff --git a/semantic-1.6.1.gem b/semantic-1.6.1.gem new file mode 100644 index 0000000..a0b0b1d Binary files /dev/null and b/semantic-1.6.1.gem differ diff --git a/spec/version_spec.rb b/spec/version_spec.rb index cb83c81..2ac8bd0 100644 --- a/spec/version_spec.rb +++ b/spec/version_spec.rb @@ -87,6 +87,9 @@ @v1_5_9_pre_1 = Semantic::Version.new '1.5.9-pre.1' @v1_5_9_pre_1_build_5127 = Semantic::Version.new '1.5.9-pre.1+build.5127' @v1_5_9_pre_1_build_4352 = Semantic::Version.new '1.5.9-pre.1+build.4352' + # more pre syntax testing: "-" + @v3_13_0_75_generic = Semantic::Version.new '3.13.0-75-generic' + @v3_13_0_141_generic = Semantic::Version.new '3.13.0-141-generic' @v1_5_9 = Semantic::Version.new '1.5.9' @v1_6_0 = Semantic::Version.new '1.6.0' @@ -132,6 +135,14 @@ expect(ary.shuffle.sort).to eq(ary) end + it 'determine alternate char sep works in pre' do + expect((@v3_13_0_75_generic <=> @v3_13_0_141_generic.to_s)).to eq(-1) + expect((@v3_13_0_75_generic <=> @v3_13_0_141_generic)).to eq(-1) + expect((@v3_13_0_75_generic <=> '3.13.0-75-generic')).to eq(0) + expect((@v3_13_0_75_generic <=> '3.13.0-141-generic')).to eq(-1) + expect((@v3_13_0_141_generic <=> '3.13.0-75-generic')).to eq(1) + end + it 'determines whether it is greater than another instance' do # These should be equal, since "Build metadata SHOULD be ignored # when determining version precedence".