diff --git a/lib/manager/bundler/index.ts b/lib/manager/bundler/index.ts index bcb44731b29ad993664e80bd7326cb557412f9d3..5024b9831cfa242c717cddffc80f0dc82a77f862 100644 --- a/lib/manager/bundler/index.ts +++ b/lib/manager/bundler/index.ts @@ -1,5 +1,4 @@ import { extractPackageFile } from './extract'; -import { updateDependency } from './update'; import { updateArtifacts } from './artifacts'; import { getRangeStrategy } from './range'; import { LANGUAGE_RUBY } from '../../constants/languages'; @@ -18,7 +17,6 @@ export { updateArtifacts, // Optional getRangeStrategy, // Optional language, // Optional - updateDependency, // Mandatory }; export const defaultConfig = { diff --git a/lib/manager/bundler/update.spec.ts b/lib/manager/bundler/update.spec.ts deleted file mode 100644 index 962827e6ea2143d0da3ac5e0a589cfd5f1deffdb..0000000000000000000000000000000000000000 --- a/lib/manager/bundler/update.spec.ts +++ /dev/null @@ -1,66 +0,0 @@ -import { readFileSync } from 'fs'; -import { updateDependency } from './update'; - -const railsGemfile = readFileSync( - 'lib/manager/bundler/__fixtures__/Gemfile.rails', - 'utf8' -); - -describe('manager/docker-compose/update', () => { - describe('updateDependency', () => { - it('replaces existing value', () => { - // gem "rack-cache", "~> 1.2" - const upgrade = { - managerData: { lineNumber: 13 }, - depName: 'rack-cache', - newValue: '~> 1.3', - }; - const res = updateDependency({ - fileContent: railsGemfile, - upgrade, - }); - expect(res).not.toEqual(railsGemfile); - expect(res.includes(upgrade.newValue)).toBe(true); - }); - it('returns same', () => { - // gem "rack-cache", "~> 1.2" - const upgrade = { - managerData: { lineNumber: 13 }, - depName: 'rack-cache', - newValue: '~> 1.2', - }; - const res = updateDependency({ - fileContent: railsGemfile, - upgrade, - }); - expect(res).toEqual(railsGemfile); - }); - it('returns null if mismatch', () => { - // gem "rack-cache", "~> 1.2" - const upgrade = { - managerData: { lineNumber: 13 }, - depName: 'wrong', - newValue: '~> 1.3', - }; - const res = updateDependency({ - fileContent: railsGemfile, - upgrade, - }); - expect(res).toBeNull(); - }); - it('uses single quotes', () => { - const upgrade = { - managerData: { lineNumber: 0 }, - depName: 'rack-cache', - newValue: '~> 1.3', - }; - const gemFile = `gem 'rack-cache', '~> 1.2'`; - const res = updateDependency({ fileContent: gemFile, upgrade }); - expect(res).toEqual(`gem 'rack-cache', '~> 1.3'`); - }); - it('returns null if error', () => { - const res = updateDependency({ fileContent: null, upgrade: null }); - expect(res).toBeNull(); - }); - }); -}); diff --git a/lib/manager/bundler/update.ts b/lib/manager/bundler/update.ts deleted file mode 100644 index 7e3bcb1363db73bf54a2cc6c7f9b25aa178952a3..0000000000000000000000000000000000000000 --- a/lib/manager/bundler/update.ts +++ /dev/null @@ -1,43 +0,0 @@ -import { logger } from '../../logger'; -import { UpdateDependencyConfig } from '../common'; - -/* - * The updateDependency() function is mandatory, and is used for updating one dependency at a time. - * It returns the currentFileContent if no changes are necessary (e.g. because the existing branch/PR is up to date), - * or with new content if changes are necessary. - */ - -export function updateDependency({ - fileContent, - upgrade, -}: UpdateDependencyConfig): string | null { - try { - const delimiter = - fileContent.split('"').length > fileContent.split("'").length ? '"' : "'"; - const lines = fileContent.split('\n'); - const lineToChange = lines[upgrade.managerData.lineNumber]; - if (!lineToChange.includes(upgrade.depName)) { - logger.debug('No gem match on line'); - return null; - } - const newValue = upgrade.newValue - .split(',') - .map((part) => `, ${delimiter}${part.trim()}${delimiter}`) - .join(''); - const newLine = lineToChange.replace( - new RegExp( - `(gem ${delimiter}[^${delimiter}]+${delimiter})(,\\s+${delimiter}[^${delimiter}]+${delimiter}){0,2}` - ), - `$1${newValue}` - ); - if (newLine === lineToChange) { - logger.debug('No changes necessary'); - return fileContent; - } - lines[upgrade.managerData.lineNumber] = newLine; - return lines.join('\n'); - } catch (err) { - logger.debug({ err }, 'Error setting new Gemfile value'); - return null; - } -}