From 658cfb287ec8af3c97633e19a2b584d5a9b0ecc2 Mon Sep 17 00:00:00 2001 From: bep Date: Wed, 18 Mar 2015 19:42:46 +0100 Subject: Remove URL param from exported AbsURL methods This is to make it clear that there is only one URL in play, the BaseURL. --- transform/absurl.go | 32 +++++++++++++++++++++++--------- transform/chain_test.go | 8 ++++---- 2 files changed, 27 insertions(+), 13 deletions(-) (limited to 'transform') diff --git a/transform/absurl.go b/transform/absurl.go index b4bd1dff4..1c721071d 100644 --- a/transform/absurl.go +++ b/transform/absurl.go @@ -1,33 +1,47 @@ package transform import ( + "github.com/spf13/viper" "sync" ) var absURLInit sync.Once var ar *absURLReplacer -// for performance reasons, we reuse the first baseURL given -func initAbsURLReplacer(baseURL string) { - absURLInit.Do(func() { - ar = newAbsURLReplacer(baseURL) - }) +func AbsURL() (trs []link, err error) { + initAbsURLReplacer() + return absURLFromReplacer(ar) } -func AbsURL(absURL string) (trs []link, err error) { - initAbsURLReplacer(absURL) +func absURLFromURL(URL string) (trs []link, err error) { + return absURLFromReplacer(newAbsURLReplacer(URL)) +} +func absURLFromReplacer(ar *absURLReplacer) (trs []link, err error) { trs = append(trs, func(rw contentRewriter) { ar.replaceInHTML(rw) }) return } -func AbsURLInXML(absURL string) (trs []link, err error) { - initAbsURLReplacer(absURL) +func AbsURLInXML() (trs []link, err error) { + initAbsURLReplacer() + return absURLInXMLFromReplacer(ar) +} + +func absURLInXMLFromURL(URL string) (trs []link, err error) { + return absURLInXMLFromReplacer(newAbsURLReplacer(URL)) +} +func absURLInXMLFromReplacer(ar *absURLReplacer) (trs []link, err error) { trs = append(trs, func(rw contentRewriter) { ar.replaceInXML(rw) }) return } + +func initAbsURLReplacer() { + absURLInit.Do(func() { + ar = newAbsURLReplacer(viper.GetString("BaseURL")) + }) +} diff --git a/transform/chain_test.go b/transform/chain_test.go index d8ceb8bca..c69b2eb82 100644 --- a/transform/chain_test.go +++ b/transform/chain_test.go @@ -85,7 +85,7 @@ func TestChaingMultipleTransformers(t *testing.T) { } func BenchmarkAbsURL(b *testing.B) { - absURL, _ := AbsURL("http://base") + absURL, _ := absURLFromURL("http://base") tr := NewChain(absURL...) b.ResetTimer() @@ -95,7 +95,7 @@ func BenchmarkAbsURL(b *testing.B) { } func TestAbsURL(t *testing.T) { - absURL, _ := AbsURL("http://base") + absURL, _ := absURLFromURL("http://base") tr := NewChain(absURL...) apply(t.Errorf, tr, abs_url_tests) @@ -103,7 +103,7 @@ func TestAbsURL(t *testing.T) { } func BenchmarkXMLAbsURL(b *testing.B) { - absURLInXML, _ := AbsURLInXML("http://base") + absURLInXML, _ := absURLInXMLFromURL("http://base") tr := NewChain(absURLInXML...) b.ResetTimer() @@ -113,7 +113,7 @@ func BenchmarkXMLAbsURL(b *testing.B) { } func TestXMLAbsURL(t *testing.T) { - absURLInXML, _ := AbsURLInXML("http://base") + absURLInXML, _ := absURLInXMLFromURL("http://base") tr := NewChain(absURLInXML...) apply(t.Errorf, tr, xml_abs_url_tests) } -- cgit v1.2.3