From 309ad131929684556abda2a9d20467590de91015 Mon Sep 17 00:00:00 2001 From: Jaime Romero Date: Fri, 22 Jan 2021 11:41:23 -0500 Subject: [PATCH 1/4] crate string split function --- README.md | 4 ++++ jee.go | 20 ++++++++++++++++++++ jee_test.go | 8 ++++++++ 3 files changed, 32 insertions(+) diff --git a/README.md b/README.md index f75bedf..4643836 100644 --- a/README.md +++ b/README.md @@ -158,6 +158,10 @@ Accepts a time layout in golang [time format](http://golang.org/pkg/time/#pkg-co

###### strings +**`split(s string, separator string})`** +
+Return an array of strings. +

**`$contains(s string, substr string)`**
see [strings.Contains](http://golang.org/pkg/strings/#Contains) diff --git a/jee.go b/jee.go index 3737df8..f20f718 100644 --- a/jee.go +++ b/jee.go @@ -754,6 +754,26 @@ var binaryFuncs = map[string]func(interface{}, interface{}) (interface{}, error) } return float64(t.UnixNano() / 1000 / 1000), nil }, + "$split": func(val interface{}, b interface{}) (interface{}, error) { + sa, ok := val.(string) + if !ok { + return nil, nil + } + + sb, ok := b.(string) + if !ok { + return nil, nil + } + + var list []interface{} + stringList := strings.Split(sa, sb) + + for _ , k := range stringList { + list = append(list, k) + } + + return list, nil + }, "$fmtTime": func(a interface{}, b interface{}) (interface{}, error) { layout, ok := a.(string) if !ok { diff --git a/jee_test.go b/jee_test.go index 7d0b7a1..c42ed3e 100644 --- a/jee_test.go +++ b/jee_test.go @@ -403,6 +403,14 @@ var Tests = []Test{ exp: `$has($keys(.), "arrayString")`, result: `true`, }, + Test{ + exp: `$has($split("arrayString, arrayString2, arrayString3", ","), "arrayString")`, + result: `true`, + }, + Test{ + exp: `$has($split("arrayString, arrayString2, arrayString3", ","), "nope")`, + result: `false`, + }, Test{ exp: `$has($keys(.), "nope")`, result: `false`, From c9e96aa57e3c32ed9bc2e90153a55372bab19d7b Mon Sep 17 00:00:00 2001 From: drainfort Date: Fri, 22 Jan 2021 11:43:35 -0500 Subject: [PATCH 2/4] Update README.md --- README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 4643836..9fe8825 100644 --- a/README.md +++ b/README.md @@ -158,7 +158,7 @@ Accepts a time layout in golang [time format](http://golang.org/pkg/time/#pkg-co

###### strings -**`split(s string, separator string})`** +**`$split(s string, separator string})`**
Return an array of strings.

@@ -194,4 +194,4 @@ evaluates a variable of type interface{} with a *TokenTree generated from `Parse ### changes - **.0.1.1** addition of $bool, $~bool, $num, $str, $now, $fmtTime, $parseTime. Fix for non-alphanumeric characters in JSON keys. -- **.0.1.0** initial release \ No newline at end of file +- **.0.1.0** initial release From 8286405a11e396a430a34879dafa90479d331f40 Mon Sep 17 00:00:00 2001 From: Jaime Romero Date: Tue, 22 Jun 2021 16:16:57 -0500 Subject: [PATCH 3/4] fix has --- .idea/.gitignore | 8 ++++++++ jee.go | 3 +++ jee_test.go | 4 ++++ 3 files changed, 15 insertions(+) create mode 100644 .idea/.gitignore diff --git a/.idea/.gitignore b/.idea/.gitignore new file mode 100644 index 0000000..b76663a --- /dev/null +++ b/.idea/.gitignore @@ -0,0 +1,8 @@ +# Default ignored files +/shelf/ +/workspace.xml +# Datasource local storage ignored files +/../../../../:\Work\gojee\.idea/dataSources/ +/dataSources.local.xml +# Editor-based HTTP Client requests +/httpRequests/ diff --git a/jee.go b/jee.go index f20f718..7eb7e89 100644 --- a/jee.go +++ b/jee.go @@ -846,6 +846,9 @@ var binaryFuncs = map[string]func(interface{}, interface{}) (interface{}, error) if !ok { return nil, nil } + if b == nil { + return false, nil + } for _, e := range s { switch c := e.(type) { diff --git a/jee_test.go b/jee_test.go index c42ed3e..aca1697 100644 --- a/jee_test.go +++ b/jee_test.go @@ -411,6 +411,10 @@ var Tests = []Test{ exp: `$has($split("arrayString, arrayString2, arrayString3", ","), "nope")`, result: `false`, }, + Test{ + exp: `$has($split("arrayString, arrayString2, arrayString3", ","), null)`, + result: `false`, + }, Test{ exp: `$has($keys(.), "nope")`, result: `false`, From baa2e8574e7d5e5f0cb9ff507ce22788178208b6 Mon Sep 17 00:00:00 2001 From: Jaime Romero Date: Tue, 22 Jun 2021 16:21:21 -0500 Subject: [PATCH 4/4] Removing unused files --- .idea/.gitignore | 8 -------- 1 file changed, 8 deletions(-) delete mode 100644 .idea/.gitignore diff --git a/.idea/.gitignore b/.idea/.gitignore deleted file mode 100644 index b76663a..0000000 --- a/.idea/.gitignore +++ /dev/null @@ -1,8 +0,0 @@ -# Default ignored files -/shelf/ -/workspace.xml -# Datasource local storage ignored files -/../../../../:\Work\gojee\.idea/dataSources/ -/dataSources.local.xml -# Editor-based HTTP Client requests -/httpRequests/