diff --git a/lib/src/main/groovy/com/jessebrault/ssg/url/PathBasedUrlBuilder.groovy b/lib/src/main/groovy/com/jessebrault/ssg/url/PathBasedUrlBuilder.groovy index c4065f3..4050712 100644 --- a/lib/src/main/groovy/com/jessebrault/ssg/url/PathBasedUrlBuilder.groovy +++ b/lib/src/main/groovy/com/jessebrault/ssg/url/PathBasedUrlBuilder.groovy @@ -4,10 +4,12 @@ import java.nio.file.Path class PathBasedUrlBuilder implements UrlBuilder { + private final String absolute private final Path fromDirectory - PathBasedUrlBuilder(String fromFile) { - def fromFilePath = Path.of(fromFile) + PathBasedUrlBuilder(String absolute) { + this.absolute = absolute + def fromFilePath = Path.of(absolute) if (fromFilePath.parent) { this.fromDirectory = fromFilePath.parent } else { @@ -15,6 +17,11 @@ class PathBasedUrlBuilder implements UrlBuilder { } } + @Override + String getAbsolute() { + this.absolute + } + @Override String relative(String to) { this.fromDirectory.relativize(Path.of(to)).toString() diff --git a/lib/src/main/groovy/com/jessebrault/ssg/url/UrlBuilder.groovy b/lib/src/main/groovy/com/jessebrault/ssg/url/UrlBuilder.groovy index d7a2a26..fdcf087 100644 --- a/lib/src/main/groovy/com/jessebrault/ssg/url/UrlBuilder.groovy +++ b/lib/src/main/groovy/com/jessebrault/ssg/url/UrlBuilder.groovy @@ -1,5 +1,6 @@ package com.jessebrault.ssg.url interface UrlBuilder { + String getAbsolute() String relative(String to) } \ No newline at end of file diff --git a/lib/src/test/groovy/com/jessebrault/ssg/url/PathBasedUrlBuilderTests.groovy b/lib/src/test/groovy/com/jessebrault/ssg/url/PathBasedUrlBuilderTests.groovy index 4381779..d05e6fd 100644 --- a/lib/src/test/groovy/com/jessebrault/ssg/url/PathBasedUrlBuilderTests.groovy +++ b/lib/src/test/groovy/com/jessebrault/ssg/url/PathBasedUrlBuilderTests.groovy @@ -3,8 +3,8 @@ package com.jessebrault.ssg.url class PathBasedUrlBuilderTests extends AbstractUrlBuilderTests { @Override - protected UrlBuilder getUrlBuilder(String fromFile) { - new PathBasedUrlBuilder(fromFile) + protected UrlBuilder getUrlBuilder(String targetPath) { + new PathBasedUrlBuilder(targetPath) } } diff --git a/lib/src/testFixtures/groovy/com/jessebrault/ssg/url/AbstractUrlBuilderTests.groovy b/lib/src/testFixtures/groovy/com/jessebrault/ssg/url/AbstractUrlBuilderTests.groovy index ebbae9b..3fa352e 100644 --- a/lib/src/testFixtures/groovy/com/jessebrault/ssg/url/AbstractUrlBuilderTests.groovy +++ b/lib/src/testFixtures/groovy/com/jessebrault/ssg/url/AbstractUrlBuilderTests.groovy @@ -6,7 +6,7 @@ import static org.junit.jupiter.api.Assertions.assertEquals abstract class AbstractUrlBuilderTests { - protected abstract UrlBuilder getUrlBuilder(String fromFile); + protected abstract UrlBuilder getUrlBuilder(String targetPath); @Test void upDownDown() { @@ -30,4 +30,12 @@ abstract class AbstractUrlBuilderTests { ) } + @Test + void absoluteMatchesTargetPath() { + assertEquals( + 'test/test.html', + this.getUrlBuilder('test/test.html').absolute + ) + } + }