From e6e20b5f3e58e73e64b259fd9f80afe9fea86415 Mon Sep 17 00:00:00 2001 From: JesseBrault0709 <62299747+JesseBrault0709@users.noreply.github.com> Date: Sun, 8 Jan 2023 09:01:56 -0600 Subject: [PATCH] Consistent toString() and @EqualsAndHashCode for most classes. --- .../main/groovy/com/jessebrault/ssg/Config.groovy | 12 +++++++++++- .../ssg/SimpleStaticSiteGenerator.groovy | 15 +++++++++++---- .../jessebrault/ssg/part/EmbeddablePart.groovy | 9 ++++++++- .../ssg/part/EmbeddablePartsMap.groovy | 11 ++++++++--- .../jessebrault/ssg/part/GspPartRenderer.groovy | 7 +++++++ .../groovy/com/jessebrault/ssg/part/Part.groovy | 13 ++++++++++--- .../ssg/part/PartFilePartsProvider.groovy | 9 ++++++++- .../com/jessebrault/ssg/part/PartType.groovy | 13 ++++++++++--- .../ssg/specialpage/GspSpecialPageRenderer.groovy | 7 +++++++ .../ssg/specialpage/SpecialPage.groovy | 11 +++++++++-- .../SpecialPageFileSpecialPagesProvider.groovy | 7 +++++++ .../ssg/specialpage/SpecialPageType.groovy | 11 +++++++++-- .../ssg/template/GspTemplateRenderer.groovy | 7 +++++++ .../com/jessebrault/ssg/template/Template.groovy | 11 +++++++++-- .../template/TemplateFileTemplatesProvider.groovy | 9 ++++++++- .../jessebrault/ssg/template/TemplateType.groovy | 13 ++++++++++--- .../jessebrault/ssg/text/EmbeddableText.groovy | 7 +++++++ .../ssg/text/EmbeddableTextsCollection.groovy | 9 ++++++--- .../com/jessebrault/ssg/text/FrontMatter.groovy | 9 +++++++-- .../ssg/text/MarkdownFrontMatterGetter.groovy | 7 +++++++ .../ssg/text/MarkdownTextRenderer.groovy | 7 +++++++ .../groovy/com/jessebrault/ssg/text/Text.groovy | 11 +++++++++-- .../ssg/text/TextFileTextsProvider.groovy | 7 +++++++ .../com/jessebrault/ssg/text/TextType.groovy | 11 +++++++++-- .../jessebrault/ssg/util/FileNameHandler.groovy | 7 +++++++ .../ssg/util/RelativePathHandler.groovy | 7 +++++++ .../ssg/part/PartFilePartsProviderTests.groovy | 4 ++-- 27 files changed, 214 insertions(+), 37 deletions(-) diff --git a/lib/src/main/groovy/com/jessebrault/ssg/Config.groovy b/lib/src/main/groovy/com/jessebrault/ssg/Config.groovy index c2f9bb0..5c10dfc 100644 --- a/lib/src/main/groovy/com/jessebrault/ssg/Config.groovy +++ b/lib/src/main/groovy/com/jessebrault/ssg/Config.groovy @@ -5,15 +5,25 @@ import com.jessebrault.ssg.specialpage.SpecialPagesProvider import com.jessebrault.ssg.template.TemplatesProvider import com.jessebrault.ssg.text.TextsProvider import groovy.transform.Canonical +import groovy.transform.EqualsAndHashCode import groovy.transform.MapConstructor import groovy.transform.NullCheck +import groovy.transform.TupleConstructor -@Canonical +@TupleConstructor @MapConstructor @NullCheck +@EqualsAndHashCode class Config { + Collection textProviders Collection templatesProviders Collection partsProviders Collection specialPagesProviders + + String toString() { + "Config(textProviders: ${ this.textProviders }, templatesProviders: ${ this.templatesProviders }, " + + "partsProviders: ${ this.partsProviders }, specialPagesProviders: ${ this.specialPagesProviders })" + } + } diff --git a/lib/src/main/groovy/com/jessebrault/ssg/SimpleStaticSiteGenerator.groovy b/lib/src/main/groovy/com/jessebrault/ssg/SimpleStaticSiteGenerator.groovy index 29a9272..91cac8c 100644 --- a/lib/src/main/groovy/com/jessebrault/ssg/SimpleStaticSiteGenerator.groovy +++ b/lib/src/main/groovy/com/jessebrault/ssg/SimpleStaticSiteGenerator.groovy @@ -1,10 +1,16 @@ package com.jessebrault.ssg +import groovy.transform.EqualsAndHashCode +import groovy.transform.NullCheck +import groovy.transform.TupleConstructor import org.slf4j.Logger import org.slf4j.LoggerFactory import org.slf4j.Marker import org.slf4j.MarkerFactory +@TupleConstructor(includeFields = true) +@NullCheck +@EqualsAndHashCode(includeFields = true) class SimpleStaticSiteGenerator implements StaticSiteGenerator { private static final Logger logger = LoggerFactory.getLogger(SimpleStaticSiteGenerator) @@ -13,10 +19,6 @@ class SimpleStaticSiteGenerator implements StaticSiteGenerator { private final Config config - SimpleStaticSiteGenerator(Config config) { - this.config = config - } - @Override void generate(File buildDir, Map globals) { logger.trace(enter, 'buildDir: {}, globals: {}', buildDir, globals) @@ -92,4 +94,9 @@ class SimpleStaticSiteGenerator implements StaticSiteGenerator { logger.trace(exit, '') } + @Override + String toString() { + "SimpleStaticSiteGenerator()" + } + } diff --git a/lib/src/main/groovy/com/jessebrault/ssg/part/EmbeddablePart.groovy b/lib/src/main/groovy/com/jessebrault/ssg/part/EmbeddablePart.groovy index 6ae76d0..6e909b3 100644 --- a/lib/src/main/groovy/com/jessebrault/ssg/part/EmbeddablePart.groovy +++ b/lib/src/main/groovy/com/jessebrault/ssg/part/EmbeddablePart.groovy @@ -1,11 +1,13 @@ package com.jessebrault.ssg.part +import groovy.transform.EqualsAndHashCode import groovy.transform.NullCheck import groovy.transform.TupleConstructor @TupleConstructor(includeFields = true, defaults = false) @NullCheck - class EmbeddablePart { +@EqualsAndHashCode(includeFields = true) +class EmbeddablePart { private final Part part private final Map globals @@ -14,4 +16,9 @@ import groovy.transform.TupleConstructor part.type.renderer.render(this.part.text, binding, this.globals) } + @Override + String toString() { + "EmbeddablePart(part: ${ this.part }, globals: ${ this.globals })" + } + } diff --git a/lib/src/main/groovy/com/jessebrault/ssg/part/EmbeddablePartsMap.groovy b/lib/src/main/groovy/com/jessebrault/ssg/part/EmbeddablePartsMap.groovy index 60d3aa2..7024636 100644 --- a/lib/src/main/groovy/com/jessebrault/ssg/part/EmbeddablePartsMap.groovy +++ b/lib/src/main/groovy/com/jessebrault/ssg/part/EmbeddablePartsMap.groovy @@ -1,8 +1,8 @@ package com.jessebrault.ssg.part -import groovy.transform.ToString +import groovy.transform.EqualsAndHashCode -@ToString(includeFields = true) +@EqualsAndHashCode(includeFields = true) class EmbeddablePartsMap { @Delegate @@ -11,8 +11,13 @@ class EmbeddablePartsMap { EmbeddablePartsMap(Collection parts, Map globals) { Objects.requireNonNull(parts) parts.each { - this.put(it.name, new EmbeddablePart(it, globals)) + this.put(it.path, new EmbeddablePart(it, globals)) } } + @Override + String toString() { + "EmbeddablePartsMap(partsMap: ${ this.partsMap })" + } + } diff --git a/lib/src/main/groovy/com/jessebrault/ssg/part/GspPartRenderer.groovy b/lib/src/main/groovy/com/jessebrault/ssg/part/GspPartRenderer.groovy index 9d521e4..9702bf4 100644 --- a/lib/src/main/groovy/com/jessebrault/ssg/part/GspPartRenderer.groovy +++ b/lib/src/main/groovy/com/jessebrault/ssg/part/GspPartRenderer.groovy @@ -2,7 +2,9 @@ package com.jessebrault.ssg.part import groovy.text.GStringTemplateEngine import groovy.text.TemplateEngine +import groovy.transform.EqualsAndHashCode +@EqualsAndHashCode class GspPartRenderer implements PartRenderer { private static final TemplateEngine engine = new GStringTemplateEngine() @@ -15,4 +17,9 @@ class GspPartRenderer implements PartRenderer { ]) } + @Override + String toString() { + "GspPartRenderer()" + } + } diff --git a/lib/src/main/groovy/com/jessebrault/ssg/part/Part.groovy b/lib/src/main/groovy/com/jessebrault/ssg/part/Part.groovy index 51de95f..9e5a66c 100644 --- a/lib/src/main/groovy/com/jessebrault/ssg/part/Part.groovy +++ b/lib/src/main/groovy/com/jessebrault/ssg/part/Part.groovy @@ -1,14 +1,21 @@ package com.jessebrault.ssg.part -import groovy.transform.Canonical +import groovy.transform.EqualsAndHashCode import groovy.transform.NullCheck import groovy.transform.TupleConstructor -@Canonical @TupleConstructor(defaults = false) @NullCheck +@EqualsAndHashCode class Part { - String name + + String path PartType type String text + + @Override + String toString() { + "Part(path: ${ this.path }, type: ${ this.type })" + } + } diff --git a/lib/src/main/groovy/com/jessebrault/ssg/part/PartFilePartsProvider.groovy b/lib/src/main/groovy/com/jessebrault/ssg/part/PartFilePartsProvider.groovy index 73e627e..323931a 100644 --- a/lib/src/main/groovy/com/jessebrault/ssg/part/PartFilePartsProvider.groovy +++ b/lib/src/main/groovy/com/jessebrault/ssg/part/PartFilePartsProvider.groovy @@ -2,6 +2,7 @@ package com.jessebrault.ssg.part import com.jessebrault.ssg.util.FileNameHandler import groovy.io.FileType +import groovy.transform.EqualsAndHashCode import groovy.transform.NullCheck import groovy.transform.TupleConstructor import org.slf4j.Logger @@ -9,6 +10,7 @@ import org.slf4j.LoggerFactory @TupleConstructor(includeFields = true, defaults = false) @NullCheck +@EqualsAndHashCode(includeFields = true) class PartFilePartsProvider implements PartsProvider { private static final Logger logger = LoggerFactory.getLogger(PartFilePartsProvider) @@ -18,7 +20,7 @@ class PartFilePartsProvider implements PartsProvider { private PartType getPartType(File file) { partTypes.find { - it.extensions.contains(new FileNameHandler(file).getExtension()) + it.ids.contains(new FileNameHandler(file).getExtension()) } } @@ -47,4 +49,9 @@ class PartFilePartsProvider implements PartsProvider { this.partTypes } + @Override + String toString() { + "PartFilePartsProvider(partsDir: ${ this.partsDir }, partTypes: ${ this.partTypes })" + } + } diff --git a/lib/src/main/groovy/com/jessebrault/ssg/part/PartType.groovy b/lib/src/main/groovy/com/jessebrault/ssg/part/PartType.groovy index f44f4be..f5df2ad 100644 --- a/lib/src/main/groovy/com/jessebrault/ssg/part/PartType.groovy +++ b/lib/src/main/groovy/com/jessebrault/ssg/part/PartType.groovy @@ -1,13 +1,20 @@ package com.jessebrault.ssg.part -import groovy.transform.Canonical +import groovy.transform.EqualsAndHashCode import groovy.transform.NullCheck import groovy.transform.TupleConstructor -@Canonical @TupleConstructor(defaults = false) @NullCheck +@EqualsAndHashCode class PartType { - Collection extensions + + Collection ids PartRenderer renderer + + @Override + String toString() { + "PartType(ids: ${ this.ids }, renderer: ${ this.renderer })" + } + } diff --git a/lib/src/main/groovy/com/jessebrault/ssg/specialpage/GspSpecialPageRenderer.groovy b/lib/src/main/groovy/com/jessebrault/ssg/specialpage/GspSpecialPageRenderer.groovy index 9fd480e..e0c4718 100644 --- a/lib/src/main/groovy/com/jessebrault/ssg/specialpage/GspSpecialPageRenderer.groovy +++ b/lib/src/main/groovy/com/jessebrault/ssg/specialpage/GspSpecialPageRenderer.groovy @@ -6,7 +6,9 @@ import com.jessebrault.ssg.text.EmbeddableTextsCollection import com.jessebrault.ssg.text.Text import groovy.text.GStringTemplateEngine import groovy.text.TemplateEngine +import groovy.transform.EqualsAndHashCode +@EqualsAndHashCode class GspSpecialPageRenderer implements SpecialPageRenderer { private static final TemplateEngine engine = new GStringTemplateEngine() @@ -25,4 +27,9 @@ class GspSpecialPageRenderer implements SpecialPageRenderer { ]) } + @Override + String toString() { + "GspSpecialPageRenderer()" + } + } diff --git a/lib/src/main/groovy/com/jessebrault/ssg/specialpage/SpecialPage.groovy b/lib/src/main/groovy/com/jessebrault/ssg/specialpage/SpecialPage.groovy index c8a4332..869a412 100644 --- a/lib/src/main/groovy/com/jessebrault/ssg/specialpage/SpecialPage.groovy +++ b/lib/src/main/groovy/com/jessebrault/ssg/specialpage/SpecialPage.groovy @@ -1,14 +1,21 @@ package com.jessebrault.ssg.specialpage -import groovy.transform.Canonical +import groovy.transform.EqualsAndHashCode import groovy.transform.NullCheck import groovy.transform.TupleConstructor -@Canonical @TupleConstructor(defaults = false) @NullCheck +@EqualsAndHashCode class SpecialPage { + String text String path SpecialPageType type + + @Override + String toString() { + "SpecialPage(path: ${ this.path }, type: ${ this.type })" + } + } diff --git a/lib/src/main/groovy/com/jessebrault/ssg/specialpage/SpecialPageFileSpecialPagesProvider.groovy b/lib/src/main/groovy/com/jessebrault/ssg/specialpage/SpecialPageFileSpecialPagesProvider.groovy index 657b9fe..a322b2d 100644 --- a/lib/src/main/groovy/com/jessebrault/ssg/specialpage/SpecialPageFileSpecialPagesProvider.groovy +++ b/lib/src/main/groovy/com/jessebrault/ssg/specialpage/SpecialPageFileSpecialPagesProvider.groovy @@ -3,6 +3,7 @@ package com.jessebrault.ssg.specialpage import com.jessebrault.ssg.util.FileNameHandler import com.jessebrault.ssg.util.RelativePathHandler import groovy.io.FileType +import groovy.transform.EqualsAndHashCode import groovy.transform.NullCheck import groovy.transform.TupleConstructor import org.slf4j.Logger @@ -10,6 +11,7 @@ import org.slf4j.LoggerFactory @TupleConstructor(includeFields = true, defaults = false) @NullCheck +@EqualsAndHashCode(includeFields = true) class SpecialPageFileSpecialPagesProvider implements SpecialPagesProvider { private static final Logger logger = LoggerFactory.getLogger(SpecialPageFileSpecialPagesProvider) @@ -49,4 +51,9 @@ class SpecialPageFileSpecialPagesProvider implements SpecialPagesProvider { this.specialPageTypes } + @Override + String toString() { + "SpecialPageFileSpecialPagesProvider(specialPagesDir: ${ this.specialPagesDir }, specialPageTypes: ${ this.specialPageTypes })" + } + } diff --git a/lib/src/main/groovy/com/jessebrault/ssg/specialpage/SpecialPageType.groovy b/lib/src/main/groovy/com/jessebrault/ssg/specialpage/SpecialPageType.groovy index 84afe6e..cf5be4d 100644 --- a/lib/src/main/groovy/com/jessebrault/ssg/specialpage/SpecialPageType.groovy +++ b/lib/src/main/groovy/com/jessebrault/ssg/specialpage/SpecialPageType.groovy @@ -1,13 +1,20 @@ package com.jessebrault.ssg.specialpage -import groovy.transform.Canonical +import groovy.transform.EqualsAndHashCode import groovy.transform.NullCheck import groovy.transform.TupleConstructor -@Canonical @TupleConstructor(defaults = false) @NullCheck +@EqualsAndHashCode class SpecialPageType { + Collection ids SpecialPageRenderer renderer + + @Override + String toString() { + "SpecialPageType(ids: ${ this.ids }, renderer: ${ this.renderer })" + } + } diff --git a/lib/src/main/groovy/com/jessebrault/ssg/template/GspTemplateRenderer.groovy b/lib/src/main/groovy/com/jessebrault/ssg/template/GspTemplateRenderer.groovy index 856c250..fa73257 100644 --- a/lib/src/main/groovy/com/jessebrault/ssg/template/GspTemplateRenderer.groovy +++ b/lib/src/main/groovy/com/jessebrault/ssg/template/GspTemplateRenderer.groovy @@ -5,7 +5,9 @@ import com.jessebrault.ssg.part.EmbeddablePartsMap import com.jessebrault.ssg.text.FrontMatter import groovy.text.GStringTemplateEngine import groovy.text.TemplateEngine +import groovy.transform.EqualsAndHashCode +@EqualsAndHashCode class GspTemplateRenderer implements TemplateRenderer { private static final TemplateEngine engine = new GStringTemplateEngine() @@ -26,4 +28,9 @@ class GspTemplateRenderer implements TemplateRenderer { ]) } + @Override + String toString() { + "GspTemplateRenderer()" + } + } diff --git a/lib/src/main/groovy/com/jessebrault/ssg/template/Template.groovy b/lib/src/main/groovy/com/jessebrault/ssg/template/Template.groovy index 52aa4fb..91b65f2 100644 --- a/lib/src/main/groovy/com/jessebrault/ssg/template/Template.groovy +++ b/lib/src/main/groovy/com/jessebrault/ssg/template/Template.groovy @@ -1,14 +1,21 @@ package com.jessebrault.ssg.template -import groovy.transform.Canonical +import groovy.transform.EqualsAndHashCode import groovy.transform.NullCheck import groovy.transform.TupleConstructor -@Canonical @TupleConstructor(defaults = false) @NullCheck +@EqualsAndHashCode class Template { + String text String relativePath TemplateType type + + @Override + String toString() { + "Template(path: ${ this.relativePath }, type: ${ this.type })" + } + } diff --git a/lib/src/main/groovy/com/jessebrault/ssg/template/TemplateFileTemplatesProvider.groovy b/lib/src/main/groovy/com/jessebrault/ssg/template/TemplateFileTemplatesProvider.groovy index bbcdcea..013f648 100644 --- a/lib/src/main/groovy/com/jessebrault/ssg/template/TemplateFileTemplatesProvider.groovy +++ b/lib/src/main/groovy/com/jessebrault/ssg/template/TemplateFileTemplatesProvider.groovy @@ -2,6 +2,7 @@ package com.jessebrault.ssg.template import com.jessebrault.ssg.util.FileNameHandler import groovy.io.FileType +import groovy.transform.EqualsAndHashCode import groovy.transform.NullCheck import groovy.transform.TupleConstructor import org.slf4j.Logger @@ -9,6 +10,7 @@ import org.slf4j.LoggerFactory @TupleConstructor(includeFields = true, defaults = false) @NullCheck +@EqualsAndHashCode(includeFields = true) class TemplateFileTemplatesProvider implements TemplatesProvider { private static final Logger logger = LoggerFactory.getLogger(TemplateFileTemplatesProvider) @@ -18,7 +20,7 @@ class TemplateFileTemplatesProvider implements TemplatesProvider { private TemplateType getType(File file) { this.templateTypes.find { - it.extensions.contains(new FileNameHandler(file).getExtension()) + it.ids.contains(new FileNameHandler(file).getExtension()) } } @@ -46,4 +48,9 @@ class TemplateFileTemplatesProvider implements TemplatesProvider { this.templateTypes } + @Override + String toString() { + "TemplateFileTemplatesProvider(templatesDir: ${ this.templatesDir }, templateTypes: ${ this.templateTypes })" + } + } diff --git a/lib/src/main/groovy/com/jessebrault/ssg/template/TemplateType.groovy b/lib/src/main/groovy/com/jessebrault/ssg/template/TemplateType.groovy index ac588b2..33a6336 100644 --- a/lib/src/main/groovy/com/jessebrault/ssg/template/TemplateType.groovy +++ b/lib/src/main/groovy/com/jessebrault/ssg/template/TemplateType.groovy @@ -1,13 +1,20 @@ package com.jessebrault.ssg.template -import groovy.transform.Canonical +import groovy.transform.EqualsAndHashCode import groovy.transform.NullCheck import groovy.transform.TupleConstructor -@Canonical @TupleConstructor(defaults = false) @NullCheck +@EqualsAndHashCode class TemplateType { - Collection extensions + + Collection ids TemplateRenderer renderer + + @Override + String toString() { + "TemplateType(ids: ${ this.ids }, renderer: ${ this.renderer })" + } + } diff --git a/lib/src/main/groovy/com/jessebrault/ssg/text/EmbeddableText.groovy b/lib/src/main/groovy/com/jessebrault/ssg/text/EmbeddableText.groovy index de3de4b..441ffc1 100644 --- a/lib/src/main/groovy/com/jessebrault/ssg/text/EmbeddableText.groovy +++ b/lib/src/main/groovy/com/jessebrault/ssg/text/EmbeddableText.groovy @@ -1,11 +1,13 @@ package com.jessebrault.ssg.text +import groovy.transform.EqualsAndHashCode import groovy.transform.Memoized import groovy.transform.NullCheck import groovy.transform.TupleConstructor @TupleConstructor(includeFields = true, defaults = false) @NullCheck +@EqualsAndHashCode(includeFields = true) class EmbeddableText { private final Text text @@ -25,4 +27,9 @@ import groovy.transform.TupleConstructor this.text.path } + @Override + String toString() { + "EmbeddableText(text: ${ this.text }, globals: ${ this.globals })" + } + } diff --git a/lib/src/main/groovy/com/jessebrault/ssg/text/EmbeddableTextsCollection.groovy b/lib/src/main/groovy/com/jessebrault/ssg/text/EmbeddableTextsCollection.groovy index 4b64180..7aeedd3 100644 --- a/lib/src/main/groovy/com/jessebrault/ssg/text/EmbeddableTextsCollection.groovy +++ b/lib/src/main/groovy/com/jessebrault/ssg/text/EmbeddableTextsCollection.groovy @@ -1,8 +1,8 @@ package com.jessebrault.ssg.text -import groovy.transform.ToString +import groovy.transform.EqualsAndHashCode -@ToString(includeFields = true) +@EqualsAndHashCode(includeFields = true) class EmbeddableTextsCollection { @Delegate @@ -14,6 +14,9 @@ class EmbeddableTextsCollection { } } - + @Override + String toString() { + "EmbeddableTextsCollection(embeddableTexts: ${ this.embeddableTexts })" + } } diff --git a/lib/src/main/groovy/com/jessebrault/ssg/text/FrontMatter.groovy b/lib/src/main/groovy/com/jessebrault/ssg/text/FrontMatter.groovy index f0e0590..ebe5c0a 100644 --- a/lib/src/main/groovy/com/jessebrault/ssg/text/FrontMatter.groovy +++ b/lib/src/main/groovy/com/jessebrault/ssg/text/FrontMatter.groovy @@ -1,14 +1,14 @@ package com.jessebrault.ssg.text +import groovy.transform.EqualsAndHashCode import groovy.transform.NullCheck -import groovy.transform.ToString import groovy.transform.TupleConstructor import org.slf4j.Logger import org.slf4j.LoggerFactory @TupleConstructor(includeFields = true, defaults = false) @NullCheck -@ToString(includeFields = true) +@EqualsAndHashCode(includeFields = true) class FrontMatter { private static final Logger logger = LoggerFactory.getLogger(FrontMatter) @@ -37,4 +37,9 @@ class FrontMatter { } } + @Override + String toString() { + "FrontMatter(data: ${ this.data })" + } + } diff --git a/lib/src/main/groovy/com/jessebrault/ssg/text/MarkdownFrontMatterGetter.groovy b/lib/src/main/groovy/com/jessebrault/ssg/text/MarkdownFrontMatterGetter.groovy index 0b4c688..19742f6 100644 --- a/lib/src/main/groovy/com/jessebrault/ssg/text/MarkdownFrontMatterGetter.groovy +++ b/lib/src/main/groovy/com/jessebrault/ssg/text/MarkdownFrontMatterGetter.groovy @@ -1,9 +1,11 @@ package com.jessebrault.ssg.text +import groovy.transform.EqualsAndHashCode import org.commonmark.ext.front.matter.YamlFrontMatterExtension import org.commonmark.ext.front.matter.YamlFrontMatterVisitor import org.commonmark.parser.Parser +@EqualsAndHashCode class MarkdownFrontMatterGetter implements FrontMatterGetter { private static final Parser parser = Parser.builder() @@ -18,4 +20,9 @@ class MarkdownFrontMatterGetter implements FrontMatterGetter { new FrontMatter(v.data) } + @Override + String toString() { + "MarkdownFrontMatterGetter()" + } + } diff --git a/lib/src/main/groovy/com/jessebrault/ssg/text/MarkdownTextRenderer.groovy b/lib/src/main/groovy/com/jessebrault/ssg/text/MarkdownTextRenderer.groovy index ab95af0..4b6659a 100644 --- a/lib/src/main/groovy/com/jessebrault/ssg/text/MarkdownTextRenderer.groovy +++ b/lib/src/main/groovy/com/jessebrault/ssg/text/MarkdownTextRenderer.groovy @@ -1,9 +1,11 @@ package com.jessebrault.ssg.text +import groovy.transform.EqualsAndHashCode import org.commonmark.ext.front.matter.YamlFrontMatterExtension import org.commonmark.parser.Parser import org.commonmark.renderer.html.HtmlRenderer +@EqualsAndHashCode class MarkdownTextRenderer implements TextRenderer { private static final Parser parser = Parser.builder() @@ -16,4 +18,9 @@ class MarkdownTextRenderer implements TextRenderer { htmlRenderer.render(parser.parse(text)) } + @Override + String toString() { + "MarkdownTextRenderer()" + } + } diff --git a/lib/src/main/groovy/com/jessebrault/ssg/text/Text.groovy b/lib/src/main/groovy/com/jessebrault/ssg/text/Text.groovy index 490a514..ad6fccc 100644 --- a/lib/src/main/groovy/com/jessebrault/ssg/text/Text.groovy +++ b/lib/src/main/groovy/com/jessebrault/ssg/text/Text.groovy @@ -1,14 +1,21 @@ package com.jessebrault.ssg.text -import groovy.transform.Canonical +import groovy.transform.EqualsAndHashCode import groovy.transform.NullCheck import groovy.transform.TupleConstructor -@Canonical @TupleConstructor(defaults = false) @NullCheck +@EqualsAndHashCode class Text { + String text String path TextType type + + @Override + String toString() { + "Text(path: ${ this.path }, type: ${ this.type })" + } + } diff --git a/lib/src/main/groovy/com/jessebrault/ssg/text/TextFileTextsProvider.groovy b/lib/src/main/groovy/com/jessebrault/ssg/text/TextFileTextsProvider.groovy index 4c7822e..4f68b01 100644 --- a/lib/src/main/groovy/com/jessebrault/ssg/text/TextFileTextsProvider.groovy +++ b/lib/src/main/groovy/com/jessebrault/ssg/text/TextFileTextsProvider.groovy @@ -3,6 +3,7 @@ package com.jessebrault.ssg.text import com.jessebrault.ssg.util.FileNameHandler import com.jessebrault.ssg.util.RelativePathHandler import groovy.io.FileType +import groovy.transform.EqualsAndHashCode import groovy.transform.NullCheck import groovy.transform.TupleConstructor import org.slf4j.Logger @@ -10,6 +11,7 @@ import org.slf4j.LoggerFactory @TupleConstructor(includeFields = true, defaults = false) @NullCheck +@EqualsAndHashCode(includeFields = true) class TextFileTextsProvider implements TextsProvider { private static final Logger logger = LoggerFactory.getLogger(TextFileTextsProvider) @@ -49,4 +51,9 @@ class TextFileTextsProvider implements TextsProvider { this.textTypes } + @Override + String toString() { + "TextFileTextsProvider(textsDir: ${ this.textsDir }, textTypes: ${ this.textTypes })" + } + } diff --git a/lib/src/main/groovy/com/jessebrault/ssg/text/TextType.groovy b/lib/src/main/groovy/com/jessebrault/ssg/text/TextType.groovy index 65efe70..5b722ac 100644 --- a/lib/src/main/groovy/com/jessebrault/ssg/text/TextType.groovy +++ b/lib/src/main/groovy/com/jessebrault/ssg/text/TextType.groovy @@ -1,14 +1,21 @@ package com.jessebrault.ssg.text -import groovy.transform.Canonical +import groovy.transform.EqualsAndHashCode import groovy.transform.NullCheck import groovy.transform.TupleConstructor -@Canonical @TupleConstructor(defaults = false) @NullCheck +@EqualsAndHashCode class TextType { + Collection ids TextRenderer renderer FrontMatterGetter frontMatterGetter + + @Override + String toString() { + "TextType(ids: ${ this.ids }, renderer: ${ this.renderer }, frontMatterGetter: ${ this.renderer })" + } + } diff --git a/lib/src/main/groovy/com/jessebrault/ssg/util/FileNameHandler.groovy b/lib/src/main/groovy/com/jessebrault/ssg/util/FileNameHandler.groovy index efc184f..086cf35 100644 --- a/lib/src/main/groovy/com/jessebrault/ssg/util/FileNameHandler.groovy +++ b/lib/src/main/groovy/com/jessebrault/ssg/util/FileNameHandler.groovy @@ -1,10 +1,12 @@ package com.jessebrault.ssg.util +import groovy.transform.EqualsAndHashCode import groovy.transform.NullCheck import groovy.transform.TupleConstructor @TupleConstructor(includeFields = true, defaults = false) @NullCheck +@EqualsAndHashCode(includeFields = true) class FileNameHandler { private final File file @@ -22,4 +24,9 @@ class FileNameHandler { this.file.name.substring(0, this.file.name.lastIndexOf('.')) } + @Override + String toString() { + "FileNameHandler(file: ${ this.file })" + } + } diff --git a/lib/src/main/groovy/com/jessebrault/ssg/util/RelativePathHandler.groovy b/lib/src/main/groovy/com/jessebrault/ssg/util/RelativePathHandler.groovy index e17c858..2258bb0 100644 --- a/lib/src/main/groovy/com/jessebrault/ssg/util/RelativePathHandler.groovy +++ b/lib/src/main/groovy/com/jessebrault/ssg/util/RelativePathHandler.groovy @@ -1,10 +1,12 @@ package com.jessebrault.ssg.util +import groovy.transform.EqualsAndHashCode import groovy.transform.NullCheck import groovy.transform.TupleConstructor @TupleConstructor(includeFields = true, defaults = false) @NullCheck +@EqualsAndHashCode(includeFields = true) class RelativePathHandler { private final String relativePath @@ -13,4 +15,9 @@ class RelativePathHandler { this.relativePath.subSequence(0, this.relativePath.lastIndexOf('.')) } + @Override + String toString() { + "RelativePathHandler(relativePath: ${ this.relativePath })" + } + } diff --git a/lib/src/test/groovy/com/jessebrault/ssg/part/PartFilePartsProviderTests.groovy b/lib/src/test/groovy/com/jessebrault/ssg/part/PartFilePartsProviderTests.groovy index 76080ab..9233dd0 100644 --- a/lib/src/test/groovy/com/jessebrault/ssg/part/PartFilePartsProviderTests.groovy +++ b/lib/src/test/groovy/com/jessebrault/ssg/part/PartFilePartsProviderTests.groovy @@ -27,7 +27,7 @@ class PartFilePartsProviderTests { def r = this.partsProvider.getParts() assertEquals(1, r.size()) def p0 = r[0] - assertEquals('testPart.gsp', p0.name) + assertEquals('testPart.gsp', p0.path) assertEquals(gspPartType, p0.type) assertEquals('Hello <%= name %>!', p0.text) } @@ -43,7 +43,7 @@ class PartFilePartsProviderTests { def r = this.partsProvider.getParts() assertEquals(1, r.size()) def p0 = r[0] - assertEquals('nested/testPart.gsp', p0.name) + assertEquals('nested/testPart.gsp', p0.path) assertEquals(gspPartType, p0.type) assertEquals('Hello, World!', p0.text) }