Skip to content

matrix-gsheets: implement v0.2.0 roadmap#301

Merged
perNyfelt merged 2 commits intomainfrom
gsheets-0.2.0
May 3, 2026
Merged

matrix-gsheets: implement v0.2.0 roadmap#301
perNyfelt merged 2 commits intomainfrom
gsheets-0.2.0

Conversation

@perNyfelt
Copy link
Copy Markdown
Member

@perNyfelt perNyfelt commented May 3, 2026

Summary

Implements all 14 tasks from the v0.2.0 roadmap for the matrix-gsheets module.

Changes

Production code (6 files)

  • GsheetsWriter — removed duplicated sanitizeSheetName / toCell / MAX_SHEET_NAME_LENGTH, now delegates to GsUtil. Added spreadsheetUrl(String) convenience method. Added update(String, String, Matrix, ...) for writing to existing spreadsheets.
  • GsheetsReader — extracted duplicated service-setup block into buildSheetsService() helper. Fixed sheet-name extraction to use '' when no ! prefix is present.
  • GsAuthenticator — fixed log.info indentation bug. Fixed static field ordering (PROP_USER_HOME before ADC_FILE_PATH). Added historical-naming GroovyDoc note.
  • GsAuthUtils — removed commented-out tokeninfo URL. Converted inline usage docs to proper GroovyDoc on loginAndWriteAdc. Added historical-naming note.
  • GsConverter — changed val.intValue()val.longValue() in asLocalDate(Number). Added missing return type declarations (LocalTime, BigDecimal).
  • GsUtil — narrowed catch (Exception)catch (IOException) in getSheetNames; added throws IOException.

Idiomatic cleanup

  • Removed ~20 unnecessary return keywords from final expressions across GsUtil, GsheetsReader, GsheetsWriter, GsConverter.
  • Replaced Java-style new ArrayList<>() + .add() with Groovy [] literals and << / collect.

Tests (4 files)

  • GsheetsReaderTest / GsheetsWriterTest — fixed misleading class comments; removed brittle reflection-based signature tests.
  • GsExporterTest → GsUtilTest — moved 16 sanitizeSheetName / toCell tests to GsUtilTest where they belong.
  • GsConverterTest — added 5 positive-case tests for toSerials (LocalDates, LocalDateTimes, LocalTimes, mixed types, empty list).

Test commands run

./gradlew :matrix-gsheets:spotlessApply :matrix-gsheets:spotlessCheck
./gradlew :matrix-gsheets:codenarcMain :matrix-gsheets:codenarcTest
./gradlew :matrix-gsheets:test

Result: ✅ 115 tests passed, 0 failed. Spotless clean. CodeNarc 0 violations.

per added 2 commits May 3, 2026 16:06
…ervice(GoogleCredentials) private helper in GsheetsWriter, identical pattern to GsheetsReader.

                                                          Removed now-unused HttpRequestInitializer import.
   2   Fully-qualified @groovy.transform.CompileDynamic   Added import groovy.transform.CompileDynamic to GsConverter and changed annotation to @CompileDynamic.
   3   update() has no tests                              Added 5 validation tests to GsheetsWriterTest: null spreadsheetId, null range, null matrix, empty matrix, no-row mat
                                                          rix.
   4   release.md rename entry under wrong version        Already correctly placed under 0.2.0, In progress — no change needed.
   5   Breaking rename with no migration note             Created docs/0.1-0.2-MIGRATION.md documenting the BqAuthenticator → GsAuthenticator / BqAuthUtils → GsAuthUtils rena
                                                          mes with before/after code examples, plus new update() and spreadsheetUrl() features.
   6   GsExporter Javadoc shows raw URL                   Updated the deprecated class's example to use GsheetsWriter.spreadsheetUrl(spreadsheetId).
@perNyfelt perNyfelt merged commit 923a25b into main May 3, 2026
1 check passed
@perNyfelt perNyfelt deleted the gsheets-0.2.0 branch May 3, 2026 14:46
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant