Consistent toString() and @EqualsAndHashCode for most classes.

This commit is contained in:
JesseBrault0709 2023-01-08 09:01:56 -06:00
parent 8352e6001d
commit e6e20b5f3e
27 changed files with 214 additions and 37 deletions

View File

@ -5,15 +5,25 @@ import com.jessebrault.ssg.specialpage.SpecialPagesProvider
import com.jessebrault.ssg.template.TemplatesProvider import com.jessebrault.ssg.template.TemplatesProvider
import com.jessebrault.ssg.text.TextsProvider import com.jessebrault.ssg.text.TextsProvider
import groovy.transform.Canonical import groovy.transform.Canonical
import groovy.transform.EqualsAndHashCode
import groovy.transform.MapConstructor import groovy.transform.MapConstructor
import groovy.transform.NullCheck import groovy.transform.NullCheck
import groovy.transform.TupleConstructor
@Canonical @TupleConstructor
@MapConstructor @MapConstructor
@NullCheck @NullCheck
@EqualsAndHashCode
class Config { class Config {
Collection<TextsProvider> textProviders Collection<TextsProvider> textProviders
Collection<TemplatesProvider> templatesProviders Collection<TemplatesProvider> templatesProviders
Collection<PartsProvider> partsProviders Collection<PartsProvider> partsProviders
Collection<SpecialPagesProvider> specialPagesProviders Collection<SpecialPagesProvider> specialPagesProviders
String toString() {
"Config(textProviders: ${ this.textProviders }, templatesProviders: ${ this.templatesProviders }, " +
"partsProviders: ${ this.partsProviders }, specialPagesProviders: ${ this.specialPagesProviders })"
}
} }

View File

@ -1,10 +1,16 @@
package com.jessebrault.ssg package com.jessebrault.ssg
import groovy.transform.EqualsAndHashCode
import groovy.transform.NullCheck
import groovy.transform.TupleConstructor
import org.slf4j.Logger import org.slf4j.Logger
import org.slf4j.LoggerFactory import org.slf4j.LoggerFactory
import org.slf4j.Marker import org.slf4j.Marker
import org.slf4j.MarkerFactory import org.slf4j.MarkerFactory
@TupleConstructor(includeFields = true)
@NullCheck
@EqualsAndHashCode(includeFields = true)
class SimpleStaticSiteGenerator implements StaticSiteGenerator { class SimpleStaticSiteGenerator implements StaticSiteGenerator {
private static final Logger logger = LoggerFactory.getLogger(SimpleStaticSiteGenerator) private static final Logger logger = LoggerFactory.getLogger(SimpleStaticSiteGenerator)
@ -13,10 +19,6 @@ class SimpleStaticSiteGenerator implements StaticSiteGenerator {
private final Config config private final Config config
SimpleStaticSiteGenerator(Config config) {
this.config = config
}
@Override @Override
void generate(File buildDir, Map globals) { void generate(File buildDir, Map globals) {
logger.trace(enter, 'buildDir: {}, globals: {}', buildDir, globals) logger.trace(enter, 'buildDir: {}, globals: {}', buildDir, globals)
@ -92,4 +94,9 @@ class SimpleStaticSiteGenerator implements StaticSiteGenerator {
logger.trace(exit, '') logger.trace(exit, '')
} }
@Override
String toString() {
"SimpleStaticSiteGenerator()"
}
} }

View File

@ -1,10 +1,12 @@
package com.jessebrault.ssg.part package com.jessebrault.ssg.part
import groovy.transform.EqualsAndHashCode
import groovy.transform.NullCheck import groovy.transform.NullCheck
import groovy.transform.TupleConstructor import groovy.transform.TupleConstructor
@TupleConstructor(includeFields = true, defaults = false) @TupleConstructor(includeFields = true, defaults = false)
@NullCheck @NullCheck
@EqualsAndHashCode(includeFields = true)
class EmbeddablePart { class EmbeddablePart {
private final Part part private final Part part
@ -14,4 +16,9 @@ import groovy.transform.TupleConstructor
part.type.renderer.render(this.part.text, binding, this.globals) part.type.renderer.render(this.part.text, binding, this.globals)
} }
@Override
String toString() {
"EmbeddablePart(part: ${ this.part }, globals: ${ this.globals })"
}
} }

View File

@ -1,8 +1,8 @@
package com.jessebrault.ssg.part package com.jessebrault.ssg.part
import groovy.transform.ToString import groovy.transform.EqualsAndHashCode
@ToString(includeFields = true) @EqualsAndHashCode(includeFields = true)
class EmbeddablePartsMap { class EmbeddablePartsMap {
@Delegate @Delegate
@ -11,8 +11,13 @@ class EmbeddablePartsMap {
EmbeddablePartsMap(Collection<Part> parts, Map globals) { EmbeddablePartsMap(Collection<Part> parts, Map globals) {
Objects.requireNonNull(parts) Objects.requireNonNull(parts)
parts.each { 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 })"
}
} }

View File

@ -2,7 +2,9 @@ package com.jessebrault.ssg.part
import groovy.text.GStringTemplateEngine import groovy.text.GStringTemplateEngine
import groovy.text.TemplateEngine import groovy.text.TemplateEngine
import groovy.transform.EqualsAndHashCode
@EqualsAndHashCode
class GspPartRenderer implements PartRenderer { class GspPartRenderer implements PartRenderer {
private static final TemplateEngine engine = new GStringTemplateEngine() private static final TemplateEngine engine = new GStringTemplateEngine()
@ -15,4 +17,9 @@ class GspPartRenderer implements PartRenderer {
]) ])
} }
@Override
String toString() {
"GspPartRenderer()"
}
} }

View File

@ -1,14 +1,21 @@
package com.jessebrault.ssg.part package com.jessebrault.ssg.part
import groovy.transform.Canonical import groovy.transform.EqualsAndHashCode
import groovy.transform.NullCheck import groovy.transform.NullCheck
import groovy.transform.TupleConstructor import groovy.transform.TupleConstructor
@Canonical
@TupleConstructor(defaults = false) @TupleConstructor(defaults = false)
@NullCheck @NullCheck
@EqualsAndHashCode
class Part { class Part {
String name
String path
PartType type PartType type
String text String text
@Override
String toString() {
"Part(path: ${ this.path }, type: ${ this.type })"
}
} }

View File

@ -2,6 +2,7 @@ package com.jessebrault.ssg.part
import com.jessebrault.ssg.util.FileNameHandler import com.jessebrault.ssg.util.FileNameHandler
import groovy.io.FileType import groovy.io.FileType
import groovy.transform.EqualsAndHashCode
import groovy.transform.NullCheck import groovy.transform.NullCheck
import groovy.transform.TupleConstructor import groovy.transform.TupleConstructor
import org.slf4j.Logger import org.slf4j.Logger
@ -9,6 +10,7 @@ import org.slf4j.LoggerFactory
@TupleConstructor(includeFields = true, defaults = false) @TupleConstructor(includeFields = true, defaults = false)
@NullCheck @NullCheck
@EqualsAndHashCode(includeFields = true)
class PartFilePartsProvider implements PartsProvider { class PartFilePartsProvider implements PartsProvider {
private static final Logger logger = LoggerFactory.getLogger(PartFilePartsProvider) private static final Logger logger = LoggerFactory.getLogger(PartFilePartsProvider)
@ -18,7 +20,7 @@ class PartFilePartsProvider implements PartsProvider {
private PartType getPartType(File file) { private PartType getPartType(File file) {
partTypes.find { 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 this.partTypes
} }
@Override
String toString() {
"PartFilePartsProvider(partsDir: ${ this.partsDir }, partTypes: ${ this.partTypes })"
}
} }

View File

@ -1,13 +1,20 @@
package com.jessebrault.ssg.part package com.jessebrault.ssg.part
import groovy.transform.Canonical import groovy.transform.EqualsAndHashCode
import groovy.transform.NullCheck import groovy.transform.NullCheck
import groovy.transform.TupleConstructor import groovy.transform.TupleConstructor
@Canonical
@TupleConstructor(defaults = false) @TupleConstructor(defaults = false)
@NullCheck @NullCheck
@EqualsAndHashCode
class PartType { class PartType {
Collection<String> extensions
Collection<String> ids
PartRenderer renderer PartRenderer renderer
@Override
String toString() {
"PartType(ids: ${ this.ids }, renderer: ${ this.renderer })"
}
} }

View File

@ -6,7 +6,9 @@ import com.jessebrault.ssg.text.EmbeddableTextsCollection
import com.jessebrault.ssg.text.Text import com.jessebrault.ssg.text.Text
import groovy.text.GStringTemplateEngine import groovy.text.GStringTemplateEngine
import groovy.text.TemplateEngine import groovy.text.TemplateEngine
import groovy.transform.EqualsAndHashCode
@EqualsAndHashCode
class GspSpecialPageRenderer implements SpecialPageRenderer { class GspSpecialPageRenderer implements SpecialPageRenderer {
private static final TemplateEngine engine = new GStringTemplateEngine() private static final TemplateEngine engine = new GStringTemplateEngine()
@ -25,4 +27,9 @@ class GspSpecialPageRenderer implements SpecialPageRenderer {
]) ])
} }
@Override
String toString() {
"GspSpecialPageRenderer()"
}
} }

View File

@ -1,14 +1,21 @@
package com.jessebrault.ssg.specialpage package com.jessebrault.ssg.specialpage
import groovy.transform.Canonical import groovy.transform.EqualsAndHashCode
import groovy.transform.NullCheck import groovy.transform.NullCheck
import groovy.transform.TupleConstructor import groovy.transform.TupleConstructor
@Canonical
@TupleConstructor(defaults = false) @TupleConstructor(defaults = false)
@NullCheck @NullCheck
@EqualsAndHashCode
class SpecialPage { class SpecialPage {
String text String text
String path String path
SpecialPageType type SpecialPageType type
@Override
String toString() {
"SpecialPage(path: ${ this.path }, type: ${ this.type })"
}
} }

View File

@ -3,6 +3,7 @@ package com.jessebrault.ssg.specialpage
import com.jessebrault.ssg.util.FileNameHandler import com.jessebrault.ssg.util.FileNameHandler
import com.jessebrault.ssg.util.RelativePathHandler import com.jessebrault.ssg.util.RelativePathHandler
import groovy.io.FileType import groovy.io.FileType
import groovy.transform.EqualsAndHashCode
import groovy.transform.NullCheck import groovy.transform.NullCheck
import groovy.transform.TupleConstructor import groovy.transform.TupleConstructor
import org.slf4j.Logger import org.slf4j.Logger
@ -10,6 +11,7 @@ import org.slf4j.LoggerFactory
@TupleConstructor(includeFields = true, defaults = false) @TupleConstructor(includeFields = true, defaults = false)
@NullCheck @NullCheck
@EqualsAndHashCode(includeFields = true)
class SpecialPageFileSpecialPagesProvider implements SpecialPagesProvider { class SpecialPageFileSpecialPagesProvider implements SpecialPagesProvider {
private static final Logger logger = LoggerFactory.getLogger(SpecialPageFileSpecialPagesProvider) private static final Logger logger = LoggerFactory.getLogger(SpecialPageFileSpecialPagesProvider)
@ -49,4 +51,9 @@ class SpecialPageFileSpecialPagesProvider implements SpecialPagesProvider {
this.specialPageTypes this.specialPageTypes
} }
@Override
String toString() {
"SpecialPageFileSpecialPagesProvider(specialPagesDir: ${ this.specialPagesDir }, specialPageTypes: ${ this.specialPageTypes })"
}
} }

View File

@ -1,13 +1,20 @@
package com.jessebrault.ssg.specialpage package com.jessebrault.ssg.specialpage
import groovy.transform.Canonical import groovy.transform.EqualsAndHashCode
import groovy.transform.NullCheck import groovy.transform.NullCheck
import groovy.transform.TupleConstructor import groovy.transform.TupleConstructor
@Canonical
@TupleConstructor(defaults = false) @TupleConstructor(defaults = false)
@NullCheck @NullCheck
@EqualsAndHashCode
class SpecialPageType { class SpecialPageType {
Collection<String> ids Collection<String> ids
SpecialPageRenderer renderer SpecialPageRenderer renderer
@Override
String toString() {
"SpecialPageType(ids: ${ this.ids }, renderer: ${ this.renderer })"
}
} }

View File

@ -5,7 +5,9 @@ import com.jessebrault.ssg.part.EmbeddablePartsMap
import com.jessebrault.ssg.text.FrontMatter import com.jessebrault.ssg.text.FrontMatter
import groovy.text.GStringTemplateEngine import groovy.text.GStringTemplateEngine
import groovy.text.TemplateEngine import groovy.text.TemplateEngine
import groovy.transform.EqualsAndHashCode
@EqualsAndHashCode
class GspTemplateRenderer implements TemplateRenderer { class GspTemplateRenderer implements TemplateRenderer {
private static final TemplateEngine engine = new GStringTemplateEngine() private static final TemplateEngine engine = new GStringTemplateEngine()
@ -26,4 +28,9 @@ class GspTemplateRenderer implements TemplateRenderer {
]) ])
} }
@Override
String toString() {
"GspTemplateRenderer()"
}
} }

View File

@ -1,14 +1,21 @@
package com.jessebrault.ssg.template package com.jessebrault.ssg.template
import groovy.transform.Canonical import groovy.transform.EqualsAndHashCode
import groovy.transform.NullCheck import groovy.transform.NullCheck
import groovy.transform.TupleConstructor import groovy.transform.TupleConstructor
@Canonical
@TupleConstructor(defaults = false) @TupleConstructor(defaults = false)
@NullCheck @NullCheck
@EqualsAndHashCode
class Template { class Template {
String text String text
String relativePath String relativePath
TemplateType type TemplateType type
@Override
String toString() {
"Template(path: ${ this.relativePath }, type: ${ this.type })"
}
} }

View File

@ -2,6 +2,7 @@ package com.jessebrault.ssg.template
import com.jessebrault.ssg.util.FileNameHandler import com.jessebrault.ssg.util.FileNameHandler
import groovy.io.FileType import groovy.io.FileType
import groovy.transform.EqualsAndHashCode
import groovy.transform.NullCheck import groovy.transform.NullCheck
import groovy.transform.TupleConstructor import groovy.transform.TupleConstructor
import org.slf4j.Logger import org.slf4j.Logger
@ -9,6 +10,7 @@ import org.slf4j.LoggerFactory
@TupleConstructor(includeFields = true, defaults = false) @TupleConstructor(includeFields = true, defaults = false)
@NullCheck @NullCheck
@EqualsAndHashCode(includeFields = true)
class TemplateFileTemplatesProvider implements TemplatesProvider { class TemplateFileTemplatesProvider implements TemplatesProvider {
private static final Logger logger = LoggerFactory.getLogger(TemplateFileTemplatesProvider) private static final Logger logger = LoggerFactory.getLogger(TemplateFileTemplatesProvider)
@ -18,7 +20,7 @@ class TemplateFileTemplatesProvider implements TemplatesProvider {
private TemplateType getType(File file) { private TemplateType getType(File file) {
this.templateTypes.find { 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 this.templateTypes
} }
@Override
String toString() {
"TemplateFileTemplatesProvider(templatesDir: ${ this.templatesDir }, templateTypes: ${ this.templateTypes })"
}
} }

View File

@ -1,13 +1,20 @@
package com.jessebrault.ssg.template package com.jessebrault.ssg.template
import groovy.transform.Canonical import groovy.transform.EqualsAndHashCode
import groovy.transform.NullCheck import groovy.transform.NullCheck
import groovy.transform.TupleConstructor import groovy.transform.TupleConstructor
@Canonical
@TupleConstructor(defaults = false) @TupleConstructor(defaults = false)
@NullCheck @NullCheck
@EqualsAndHashCode
class TemplateType { class TemplateType {
Collection<String> extensions
Collection<String> ids
TemplateRenderer renderer TemplateRenderer renderer
@Override
String toString() {
"TemplateType(ids: ${ this.ids }, renderer: ${ this.renderer })"
}
} }

View File

@ -1,11 +1,13 @@
package com.jessebrault.ssg.text package com.jessebrault.ssg.text
import groovy.transform.EqualsAndHashCode
import groovy.transform.Memoized import groovy.transform.Memoized
import groovy.transform.NullCheck import groovy.transform.NullCheck
import groovy.transform.TupleConstructor import groovy.transform.TupleConstructor
@TupleConstructor(includeFields = true, defaults = false) @TupleConstructor(includeFields = true, defaults = false)
@NullCheck @NullCheck
@EqualsAndHashCode(includeFields = true)
class EmbeddableText { class EmbeddableText {
private final Text text private final Text text
@ -25,4 +27,9 @@ import groovy.transform.TupleConstructor
this.text.path this.text.path
} }
@Override
String toString() {
"EmbeddableText(text: ${ this.text }, globals: ${ this.globals })"
}
} }

View File

@ -1,8 +1,8 @@
package com.jessebrault.ssg.text package com.jessebrault.ssg.text
import groovy.transform.ToString import groovy.transform.EqualsAndHashCode
@ToString(includeFields = true) @EqualsAndHashCode(includeFields = true)
class EmbeddableTextsCollection { class EmbeddableTextsCollection {
@Delegate @Delegate
@ -14,6 +14,9 @@ class EmbeddableTextsCollection {
} }
} }
@Override
String toString() {
"EmbeddableTextsCollection(embeddableTexts: ${ this.embeddableTexts })"
}
} }

View File

@ -1,14 +1,14 @@
package com.jessebrault.ssg.text package com.jessebrault.ssg.text
import groovy.transform.EqualsAndHashCode
import groovy.transform.NullCheck import groovy.transform.NullCheck
import groovy.transform.ToString
import groovy.transform.TupleConstructor import groovy.transform.TupleConstructor
import org.slf4j.Logger import org.slf4j.Logger
import org.slf4j.LoggerFactory import org.slf4j.LoggerFactory
@TupleConstructor(includeFields = true, defaults = false) @TupleConstructor(includeFields = true, defaults = false)
@NullCheck @NullCheck
@ToString(includeFields = true) @EqualsAndHashCode(includeFields = true)
class FrontMatter { class FrontMatter {
private static final Logger logger = LoggerFactory.getLogger(FrontMatter) private static final Logger logger = LoggerFactory.getLogger(FrontMatter)
@ -37,4 +37,9 @@ class FrontMatter {
} }
} }
@Override
String toString() {
"FrontMatter(data: ${ this.data })"
}
} }

View File

@ -1,9 +1,11 @@
package com.jessebrault.ssg.text package com.jessebrault.ssg.text
import groovy.transform.EqualsAndHashCode
import org.commonmark.ext.front.matter.YamlFrontMatterExtension import org.commonmark.ext.front.matter.YamlFrontMatterExtension
import org.commonmark.ext.front.matter.YamlFrontMatterVisitor import org.commonmark.ext.front.matter.YamlFrontMatterVisitor
import org.commonmark.parser.Parser import org.commonmark.parser.Parser
@EqualsAndHashCode
class MarkdownFrontMatterGetter implements FrontMatterGetter { class MarkdownFrontMatterGetter implements FrontMatterGetter {
private static final Parser parser = Parser.builder() private static final Parser parser = Parser.builder()
@ -18,4 +20,9 @@ class MarkdownFrontMatterGetter implements FrontMatterGetter {
new FrontMatter(v.data) new FrontMatter(v.data)
} }
@Override
String toString() {
"MarkdownFrontMatterGetter()"
}
} }

View File

@ -1,9 +1,11 @@
package com.jessebrault.ssg.text package com.jessebrault.ssg.text
import groovy.transform.EqualsAndHashCode
import org.commonmark.ext.front.matter.YamlFrontMatterExtension import org.commonmark.ext.front.matter.YamlFrontMatterExtension
import org.commonmark.parser.Parser import org.commonmark.parser.Parser
import org.commonmark.renderer.html.HtmlRenderer import org.commonmark.renderer.html.HtmlRenderer
@EqualsAndHashCode
class MarkdownTextRenderer implements TextRenderer { class MarkdownTextRenderer implements TextRenderer {
private static final Parser parser = Parser.builder() private static final Parser parser = Parser.builder()
@ -16,4 +18,9 @@ class MarkdownTextRenderer implements TextRenderer {
htmlRenderer.render(parser.parse(text)) htmlRenderer.render(parser.parse(text))
} }
@Override
String toString() {
"MarkdownTextRenderer()"
}
} }

View File

@ -1,14 +1,21 @@
package com.jessebrault.ssg.text package com.jessebrault.ssg.text
import groovy.transform.Canonical import groovy.transform.EqualsAndHashCode
import groovy.transform.NullCheck import groovy.transform.NullCheck
import groovy.transform.TupleConstructor import groovy.transform.TupleConstructor
@Canonical
@TupleConstructor(defaults = false) @TupleConstructor(defaults = false)
@NullCheck @NullCheck
@EqualsAndHashCode
class Text { class Text {
String text String text
String path String path
TextType type TextType type
@Override
String toString() {
"Text(path: ${ this.path }, type: ${ this.type })"
}
} }

View File

@ -3,6 +3,7 @@ package com.jessebrault.ssg.text
import com.jessebrault.ssg.util.FileNameHandler import com.jessebrault.ssg.util.FileNameHandler
import com.jessebrault.ssg.util.RelativePathHandler import com.jessebrault.ssg.util.RelativePathHandler
import groovy.io.FileType import groovy.io.FileType
import groovy.transform.EqualsAndHashCode
import groovy.transform.NullCheck import groovy.transform.NullCheck
import groovy.transform.TupleConstructor import groovy.transform.TupleConstructor
import org.slf4j.Logger import org.slf4j.Logger
@ -10,6 +11,7 @@ import org.slf4j.LoggerFactory
@TupleConstructor(includeFields = true, defaults = false) @TupleConstructor(includeFields = true, defaults = false)
@NullCheck @NullCheck
@EqualsAndHashCode(includeFields = true)
class TextFileTextsProvider implements TextsProvider { class TextFileTextsProvider implements TextsProvider {
private static final Logger logger = LoggerFactory.getLogger(TextFileTextsProvider) private static final Logger logger = LoggerFactory.getLogger(TextFileTextsProvider)
@ -49,4 +51,9 @@ class TextFileTextsProvider implements TextsProvider {
this.textTypes this.textTypes
} }
@Override
String toString() {
"TextFileTextsProvider(textsDir: ${ this.textsDir }, textTypes: ${ this.textTypes })"
}
} }

View File

@ -1,14 +1,21 @@
package com.jessebrault.ssg.text package com.jessebrault.ssg.text
import groovy.transform.Canonical import groovy.transform.EqualsAndHashCode
import groovy.transform.NullCheck import groovy.transform.NullCheck
import groovy.transform.TupleConstructor import groovy.transform.TupleConstructor
@Canonical
@TupleConstructor(defaults = false) @TupleConstructor(defaults = false)
@NullCheck @NullCheck
@EqualsAndHashCode
class TextType { class TextType {
Collection<String> ids Collection<String> ids
TextRenderer renderer TextRenderer renderer
FrontMatterGetter frontMatterGetter FrontMatterGetter frontMatterGetter
@Override
String toString() {
"TextType(ids: ${ this.ids }, renderer: ${ this.renderer }, frontMatterGetter: ${ this.renderer })"
}
} }

View File

@ -1,10 +1,12 @@
package com.jessebrault.ssg.util package com.jessebrault.ssg.util
import groovy.transform.EqualsAndHashCode
import groovy.transform.NullCheck import groovy.transform.NullCheck
import groovy.transform.TupleConstructor import groovy.transform.TupleConstructor
@TupleConstructor(includeFields = true, defaults = false) @TupleConstructor(includeFields = true, defaults = false)
@NullCheck @NullCheck
@EqualsAndHashCode(includeFields = true)
class FileNameHandler { class FileNameHandler {
private final File file private final File file
@ -22,4 +24,9 @@ class FileNameHandler {
this.file.name.substring(0, this.file.name.lastIndexOf('.')) this.file.name.substring(0, this.file.name.lastIndexOf('.'))
} }
@Override
String toString() {
"FileNameHandler(file: ${ this.file })"
}
} }

View File

@ -1,10 +1,12 @@
package com.jessebrault.ssg.util package com.jessebrault.ssg.util
import groovy.transform.EqualsAndHashCode
import groovy.transform.NullCheck import groovy.transform.NullCheck
import groovy.transform.TupleConstructor import groovy.transform.TupleConstructor
@TupleConstructor(includeFields = true, defaults = false) @TupleConstructor(includeFields = true, defaults = false)
@NullCheck @NullCheck
@EqualsAndHashCode(includeFields = true)
class RelativePathHandler { class RelativePathHandler {
private final String relativePath private final String relativePath
@ -13,4 +15,9 @@ class RelativePathHandler {
this.relativePath.subSequence(0, this.relativePath.lastIndexOf('.')) this.relativePath.subSequence(0, this.relativePath.lastIndexOf('.'))
} }
@Override
String toString() {
"RelativePathHandler(relativePath: ${ this.relativePath })"
}
} }

View File

@ -27,7 +27,7 @@ class PartFilePartsProviderTests {
def r = this.partsProvider.getParts() def r = this.partsProvider.getParts()
assertEquals(1, r.size()) assertEquals(1, r.size())
def p0 = r[0] def p0 = r[0]
assertEquals('testPart.gsp', p0.name) assertEquals('testPart.gsp', p0.path)
assertEquals(gspPartType, p0.type) assertEquals(gspPartType, p0.type)
assertEquals('Hello <%= name %>!', p0.text) assertEquals('Hello <%= name %>!', p0.text)
} }
@ -43,7 +43,7 @@ class PartFilePartsProviderTests {
def r = this.partsProvider.getParts() def r = this.partsProvider.getParts()
assertEquals(1, r.size()) assertEquals(1, r.size())
def p0 = r[0] def p0 = r[0]
assertEquals('nested/testPart.gsp', p0.name) assertEquals('nested/testPart.gsp', p0.path)
assertEquals(gspPartType, p0.type) assertEquals(gspPartType, p0.type)
assertEquals('Hello, World!', p0.text) assertEquals('Hello, World!', p0.text)
} }