diff options
author | Silvan Jegen <s.jegen@gmail.com> | 2017-01-21 12:34:51 +0100 |
---|---|---|
committer | Silvan Jegen <s.jegen@gmail.com> | 2017-01-21 12:34:51 +0100 |
commit | 2eb6ecf4e9d8040bd2a698dbfa80bcd45b0c371e (patch) | |
tree | 732693efaf7e9c925a79a8cf412ceb2714d98b3c /filter/string.go | |
parent | 5c24009f2b1fd5a7e5abd4dc33ebdec0c6eaaf25 (diff) |
Use the registry for filter modules as well
Diffstat (limited to 'filter/string.go')
-rw-r--r-- | filter/string.go | 56 |
1 files changed, 0 insertions, 56 deletions
diff --git a/filter/string.go b/filter/string.go deleted file mode 100644 index cb44d75..0000000 --- a/filter/string.go +++ /dev/null @@ -1,56 +0,0 @@ -package filter - -import ( - "bytes" - "encoding/json" - "fmt" - "io" - - "github.com/Shugyousha/stasher/work" -) - -type StringFilter struct { - FilterFuncMap map[string]func(string) string -} - -func NewStringFilter(ffmap map[string]func(string) string) *StringFilter { - return &StringFilter{FilterFuncMap: ffmap} -} - -func (f *StringFilter) Filter(w *work.Work) *work.Work { - dec := json.NewDecoder(bytes.NewReader(w.Data)) - jm := make(map[string]string, 10) - - err := dec.Decode(&jm) - if err == io.EOF { - fmt.Printf("EOF jm: %v\n", jm) - return w - } - if err != nil { - fmt.Printf("Error when decoding JSON: %q\n", err) - w.Err = err - return w - } - - changed := false - for field, ff := range f.FilterFuncMap { - str, ok := jm[field] - if !ok { - continue - } - - jm[field] = ff(str) - changed = true - } - if changed { - bs, err := json.Marshal(jm) - if err != nil { - fmt.Printf("Error when marshalling JSON: %q\n", err) - w.Err = err - } else { - w.Data = bs - } - } - - return w -} |