diff --git a/lib/versioning/ruby/index.js b/lib/versioning/ruby/index.js index 310817d04d8b5b644559cbc66eed1a2d58fa5614..3daecc2cce7107567c6933b0c8b2090eb69e8677 100644 --- a/lib/versioning/ruby/index.js +++ b/lib/versioning/ruby/index.js @@ -32,13 +32,17 @@ const isSingleVersion = range => { const isStable = version => parseVersion(version).prerelease ? false : isVersion(version); -const isValid = range => { - const { version, operator } = parseRange(range); +const isValid = input => + input + .split(',') + .map(piece => piece.trim()) + .every(range => { + const { version, operator } = parseRange(range); - return operator - ? isVersion(version) && isValidOperator(operator) - : isVersion(version); -}; + return operator + ? isVersion(version) && isValidOperator(operator) + : isVersion(version); + }); const matches = (version, range) => satisfies(version, range); const maxSatisfyingVersion = (versions, range) => diff --git a/test/versioning/ruby.spec.js b/test/versioning/ruby.spec.js index 9d38a15e248de13174f74ed100c8273d639b3f0c..4998db47ebde06790ed829291e0e18ea8cb4c122 100644 --- a/test/versioning/ruby.spec.js +++ b/test/versioning/ruby.spec.js @@ -297,6 +297,10 @@ describe('semverRuby', () => { expect(semverRuby.isValid('~> 1.2.0-alpha.1')).toBeTruthy(); }); + it('returns true when range is valid', () => { + expect(semverRuby.isValid('>= 3.0.5, < 3.2')).toBeTruthy(); + }); + it('returns false when version is invalid', () => { expect(semverRuby.isVersion()).toBeFalsy(); expect(semverRuby.isVersion('')).toBeFalsy();