From 2f0c110d36514bf962ff375a0210426aaa6667b6 Mon Sep 17 00:00:00 2001 From: Clayton Han-Mitchell Date: Mon, 29 Jan 2018 14:21:16 -0800 Subject: [PATCH] adding - as a legal seperator in identifier section --- lib/semantic/version.rb | 2 +- spec/version_spec.rb | 11 +++++++++++ 2 files changed, 12 insertions(+), 1 deletion(-) diff --git a/lib/semantic/version.rb b/lib/semantic/version.rb index 8b782bf..204bbd9 100644 --- a/lib/semantic/version.rb +++ b/lib/semantic/version.rb @@ -26,7 +26,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/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".