UrlBuilder has absolute(to) method.

This commit is contained in:
Jesse Brault 2023-02-16 08:47:35 +01:00
parent 111bdea286
commit 60f4c1415f
3 changed files with 16 additions and 0 deletions

View File

@ -5,10 +5,12 @@ import java.nio.file.Path
class PathBasedUrlBuilder implements UrlBuilder {
private final String absolute
private final String baseUrl
private final Path fromDirectory
PathBasedUrlBuilder(String targetPath, String baseUrl) {
this.absolute = baseUrl + '/' + targetPath
this.baseUrl = baseUrl
def fromFilePath = Path.of(targetPath)
if (fromFilePath.parent) {
this.fromDirectory = fromFilePath.parent
@ -22,6 +24,11 @@ class PathBasedUrlBuilder implements UrlBuilder {
this.absolute
}
@Override
String absolute(String to) {
this.baseUrl + '/' + to
}
@Override
String relative(String to) {
this.fromDirectory.relativize(Path.of(to)).toString()

View File

@ -2,5 +2,6 @@ package com.jessebrault.ssg.url
interface UrlBuilder {
String getAbsolute()
String absolute(String to)
String relative(String to)
}

View File

@ -38,4 +38,12 @@ abstract class AbstractUrlBuilderTests {
)
}
@Test
void absoluteToCorrect() {
assertEquals(
'https://test.com/images/test.jpg',
this.getUrlBuilder('', 'https://test.com').absolute('images/test.jpg')
)
}
}