Move AbsURL into seperate file
authorNoah Campbell <noahcampbell@gmail.com>
Tue, 1 Oct 2013 19:59:29 +0000 (12:59 -0700)
committerNoah Campbell <noahcampbell@gmail.com>
Tue, 8 Oct 2013 16:37:49 +0000 (18:37 +0200)
transform/absurl.go [new file with mode: 0644]
transform/post.go

diff --git a/transform/absurl.go b/transform/absurl.go
new file mode 100644 (file)
index 0000000..6e7eb12
--- /dev/null
@@ -0,0 +1,59 @@
+package transform
+
+import (
+       htmltran "code.google.com/p/go-html-transform/html/transform"
+       "io"
+       "net/url"
+)
+
+type AbsURL struct {
+       BaseURL string
+}
+
+func (t *AbsURL) Apply(r io.Reader, w io.Writer) (err error) {
+       var tr *htmltran.Transformer
+
+       if tr, err = htmltran.NewFromReader(r); err != nil {
+               return
+       }
+
+       if err = t.absUrlify(tr, elattr{"a", "href"}, elattr{"script", "src"}); err != nil {
+               return
+       }
+
+       return tr.Render(w)
+}
+
+type elattr struct {
+       tag, attr string
+}
+
+func (t *AbsURL) absUrlify(tr *htmltran.Transformer, selectors ...elattr) (err error) {
+       var baseURL, inURL *url.URL
+
+       if baseURL, err = url.Parse(t.BaseURL); err != nil {
+               return
+       }
+
+       replace := func(in string) string {
+               if inURL, err = url.Parse(in); err != nil {
+                       return in + "?"
+               }
+               if fragmentOnly(inURL) {
+                       return in
+               }
+               return baseURL.ResolveReference(inURL).String()
+       }
+
+       for _, el := range selectors {
+               if err = tr.Apply(htmltran.TransformAttrib(el.attr, replace), el.tag); err != nil {
+                       return
+               }
+       }
+
+       return
+}
+
+func fragmentOnly(u *url.URL) bool {
+       return u.Fragment != "" && u.Scheme == "" && u.Opaque == "" && u.User == nil && u.Host == "" && u.Path == "" && u.Path == "" && u.RawQuery == ""
+}
index c89a7bdf211c1cbead8c5c0579559db56dacef05..a23b48d2e316c863294da9e1d94b658674b1b2e7 100644 (file)
@@ -1,63 +1,9 @@
 package transform
 
 import (
-       htmltran "code.google.com/p/go-html-transform/html/transform"
        "io"
-       "net/url"
 )
 
 type Transformer interface {
        Apply(io.Reader, io.Writer) error
 }
-
-type AbsURL struct {
-       BaseURL string
-}
-
-func (t *AbsURL) Apply(r io.Reader, w io.Writer) (err error) {
-       var tr *htmltran.Transformer
-
-       if tr, err = htmltran.NewFromReader(r); err != nil {
-               return
-       }
-
-       if err = t.absUrlify(tr, elattr{"a", "href"}, elattr{"script", "src"}); err != nil {
-               return
-       }
-
-       return tr.Render(w)
-}
-
-type elattr struct {
-       tag, attr string
-}
-
-func (t *AbsURL) absUrlify(tr *htmltran.Transformer, selectors ...elattr) (err error) {
-       var baseURL, inURL *url.URL
-
-       if baseURL, err = url.Parse(t.BaseURL); err != nil {
-               return
-       }
-
-       replace := func(in string) string {
-               if inURL, err = url.Parse(in); err != nil {
-                       return in + "?"
-               }
-               if fragmentOnly(inURL) {
-                       return in
-               }
-               return baseURL.ResolveReference(inURL).String()
-       }
-
-       for _, el := range selectors {
-               if err = tr.Apply(htmltran.TransformAttrib(el.attr, replace), el.tag); err != nil {
-                       return
-               }
-       }
-
-       return
-}
-
-func fragmentOnly(u *url.URL) bool {
-       return u.Fragment != "" && u.Scheme == "" && u.Opaque == "" && u.User == nil && u.Host == "" && u.Path == "" && u.Path == "" && u.RawQuery == ""
-}