From bc0bc71d8386a1e5f47dc4d56daf2abae6f6b654 Mon Sep 17 00:00:00 2001 From: Sergei Zharinov <zharinov@users.noreply.github.com> Date: Sat, 16 Jan 2021 10:26:30 +0400 Subject: [PATCH] feat(gradle-lite): Support method-based variable assignment via "set()" (#8315) --- lib/manager/gradle-lite/parser.spec.ts | 18 +++++++++++++++++- lib/manager/gradle-lite/parser.ts | 13 +++++++++++++ 2 files changed, 30 insertions(+), 1 deletion(-) diff --git a/lib/manager/gradle-lite/parser.spec.ts b/lib/manager/gradle-lite/parser.spec.ts index 437a77ceef..072126bdc0 100644 --- a/lib/manager/gradle-lite/parser.spec.ts +++ b/lib/manager/gradle-lite/parser.spec.ts @@ -16,7 +16,23 @@ describe('manager/gradle-lite/parser', () => { let deps; ({ deps } = parseGradle( - '\nversion = "1.2.3"\n"foo:bar:$version"\nversion = "3.2.1"' + ['version = "1.2.3"', '"foo:bar:$version"', 'version = "3.2.1"'].join( + '\n' + ) + )); + expect(deps).toMatchObject([ + { + depName: 'foo:bar', + currentValue: '1.2.3', + }, + ]); + + ({ deps } = parseGradle( + [ + 'set("version", "1.2.3")', + '"foo:bar:$version"', + 'set("version", "3.2.1")', + ].join('\n') )); expect(deps).toMatchObject([ { diff --git a/lib/manager/gradle-lite/parser.ts b/lib/manager/gradle-lite/parser.ts index e570e523b5..4e3ab1f64b 100644 --- a/lib/manager/gradle-lite/parser.ts +++ b/lib/manager/gradle-lite/parser.ts @@ -259,6 +259,19 @@ const matcherConfigs: SyntaxMatchConfig[] = [ ], handler: handleAssignment, }, + { + // set('foo', 'bar') + matchers: [ + { matchType: TokenType.Word, matchValue: 'set' }, + { matchType: TokenType.LeftParen }, + { matchType: TokenType.String, tokenMapKey: 'keyToken' }, + { matchType: TokenType.Comma }, + { matchType: TokenType.String, tokenMapKey: 'valToken' }, + { matchType: TokenType.RightParen }, + endOfInstruction, + ], + handler: handleAssignment, + }, { // 'foo.bar:baz:1.2.3' matchers: [ -- GitLab