From 234dd4ee37f4464fc8762f2bf6b031e678bd8979 Mon Sep 17 00:00:00 2001 From: Rhys Arkins <rhys@arkins.net> Date: Tue, 14 Jan 2020 16:03:07 +0100 Subject: [PATCH] fix(bundler): handle precision changes --- lib/versioning/ruby/index.ts | 8 +++----- lib/versioning/ruby/strategies/bump.ts | 2 -- test/versioning/ruby.spec.ts | 8 ++++++++ 3 files changed, 11 insertions(+), 7 deletions(-) diff --git a/lib/versioning/ruby/index.ts b/lib/versioning/ruby/index.ts index 49fc24fee7..6778528869 100644 --- a/lib/versioning/ruby/index.ts +++ b/lib/versioning/ruby/index.ts @@ -73,6 +73,9 @@ const getNewValue = ( toVersion: string ): string => { let result = null; + if (isVersion(currentValue)) { + return currentValue.startsWith('v') ? 'v' + toVersion : toVersion; + } switch (rangeStrategy) { case 'pin': result = pin({ to: vtrim(toVersion) }); @@ -87,11 +90,6 @@ const getNewValue = ( default: logger.warn(`Unsupported strategy ${rangeStrategy}`); } - - if (currentValue !== vtrim(currentValue) && isSingleVersion(result)) { - result = `v${result}`; - } - return result; }; diff --git a/lib/versioning/ruby/strategies/bump.ts b/lib/versioning/ruby/strategies/bump.ts index ec24cb3f01..acbac49726 100644 --- a/lib/versioning/ruby/strategies/bump.ts +++ b/lib/versioning/ruby/strategies/bump.ts @@ -8,8 +8,6 @@ export default ({ range, to }: { range: string; to: string }): string => { const ranges = range.split(',').map(parseRange); const results = ranges.map(({ operator, version: ver, delimiter }) => { switch (operator) { - case null: - return to; case GT: return lte(to, ver) ? `${GT}${delimiter}${ver}` diff --git a/test/versioning/ruby.spec.ts b/test/versioning/ruby.spec.ts index e665f80eb5..d725c6af18 100644 --- a/test/versioning/ruby.spec.ts +++ b/test/versioning/ruby.spec.ts @@ -418,6 +418,14 @@ describe('semverRuby', () => { ) ).toEqual('~> 5.3.0, >= 5.3.1'); }); + it('handles change in precision', () => { + expect( + semverRuby.getNewValue('4.2.0', 'replace', '4.2.0', '4.2.5.1') + ).toEqual('4.2.5.1'); + expect( + semverRuby.getNewValue('4.2.5.1', 'replace', '4.2.5.1', '4.3.0') + ).toEqual('4.3.0'); + }); it('returns correct version for replace strategy', () => { [ -- GitLab