summaryrefslogtreecommitdiff
path: root/cmd/filters.go
diff options
context:
space:
mode:
Diffstat (limited to 'cmd/filters.go')
-rw-r--r--cmd/filters.go46
1 files changed, 46 insertions, 0 deletions
diff --git a/cmd/filters.go b/cmd/filters.go
new file mode 100644
index 0000000..28592ba
--- /dev/null
+++ b/cmd/filters.go
@@ -0,0 +1,46 @@
+package cmd
+
+import (
+ "strings"
+)
+
+var filterList = map[string]interface{}{
+ "uppercase": NewUppercaseFilter,
+ "lowercase": NewLowercaseFilter,
+ "lowercase_extra": NewLowercaseFilterWithExtraSteps,
+}
+
+func NewUppercaseFilter() Filter {
+ uppercaseFilter := Filter{
+ name: "Uppercase",
+ action: strings.ToUpper,
+ subfilters: []Filter{},
+ }
+
+ return uppercaseFilter
+}
+
+func NewLowercaseFilter() Filter {
+ lowercaseFilter := Filter{
+ name: "Lowercase",
+ action: strings.ToLower,
+ subfilters: []Filter{},
+ }
+
+ return lowercaseFilter
+}
+
+func NewLowercaseFilterWithExtraSteps() Filter {
+ var subfilters []Filter
+
+ subfilters = append(subfilters, NewUppercaseFilter())
+ subfilters = append(subfilters, NewLowercaseFilter())
+
+ filter := Filter{
+ name: "Lowercase (extra dumb)",
+ action: func(string) string { return "" },
+ subfilters: subfilters,
+ }
+
+ return filter
+}