Skip to content
Snippets Groups Projects
Commit 34c8ebe4 authored by Rhys Arkins's avatar Rhys Arkins
Browse files

fix(ruby): replace complex ranges

parent ac63a509
No related branches found
No related tags found
No related merge requests found
const { satisfies } = require('@snyk/ruby-semver'); const { satisfies } = require('@snyk/ruby-semver');
const bump = require('./bump'); const bump = require('./bump');
module.exports = ({ to, range }) => module.exports = ({ to, range }) => {
satisfies(to, range) ? range : bump({ to, range }); if (satisfies(to, range)) {
return range;
}
const lastPart = range
.split(',')
.map(part => part.trim())
.pop();
const newLastPart = bump({ to, range: lastPart });
// TODO: match precision
return range.replace(lastPart, newLastPart);
};
...@@ -408,6 +408,13 @@ describe('semverRuby', () => { ...@@ -408,6 +408,13 @@ describe('semverRuby', () => {
['~> 1.2.0', '~> 1.0.3', 'replace', '1.0.0', '1.2.3'], ['~> 1.2.0', '~> 1.0.3', 'replace', '1.0.0', '1.2.3'],
['~> 1.0.3', '~> 1.0.3', 'replace', '1.0.0', '1.0.4'], ['~> 1.0.3', '~> 1.0.3', 'replace', '1.0.0', '1.0.4'],
['~> 4.7, >= 4.7.4', '~> 4.7, >= 4.7.4', 'replace', '1.0.0', '4.7.9'], ['~> 4.7, >= 4.7.4', '~> 4.7, >= 4.7.4', 'replace', '1.0.0', '4.7.9'],
[
'>= 2.0.0, <= 2.20.0',
'>= 2.0.0, <= 2.15',
'replace',
'2.15.0',
'2.20.0',
],
].forEach(([expected, ...params]) => { ].forEach(([expected, ...params]) => {
expect(semverRuby.getNewValue(...params)).toEqual(expected); expect(semverRuby.getNewValue(...params)).toEqual(expected);
}); });
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment