sparkql 1.1.2 → 1.1.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +8 -8
- data/CHANGELOG.md +4 -0
- data/VERSION +1 -1
- data/lib/sparkql/function_resolver.rb +41 -2
- data/test/unit/function_resolver_test.rb +38 -0
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,15 +1,15 @@
|
|
1
1
|
---
|
2
2
|
!binary "U0hBMQ==":
|
3
3
|
metadata.gz: !binary |-
|
4
|
-
|
4
|
+
NjU4ZTc2ZWNiYjIyODYxYjNmZTY1ZmZmOGExZTc2MmRkMGFjMGIwYg==
|
5
5
|
data.tar.gz: !binary |-
|
6
|
-
|
6
|
+
MzBjYjdhY2E3MTNlMDZjMzU5MDI3NTYzZTVlMDE0NmZiMzQ0OTc4Yg==
|
7
7
|
SHA512:
|
8
8
|
metadata.gz: !binary |-
|
9
|
-
|
10
|
-
|
11
|
-
|
9
|
+
ZmQ5NjAxMTg4M2FlMTI1ZjJkMmZmNzQ5OGMwYTNiYWQxNTk0OWU2ZGI0ZDZm
|
10
|
+
MTQwZDQ3ZDViY2U4NDIyNDU2ODg2NjlmZDgwZDEzZWY4ZGM4NTgyNWFlMzJh
|
11
|
+
MjExZmUxZjA2MTI1OTBiMzgxMWEzNDljNzE3YTRhM2YyNmZjMTY=
|
12
12
|
data.tar.gz: !binary |-
|
13
|
-
|
14
|
-
|
15
|
-
|
13
|
+
OTFiNjcxN2I1NGUzYzg2ZWEyZjI1OWNiZDZmZWE1MGFmNmE5OWJiZjEwNTNh
|
14
|
+
OTUwNDEwODI3Nzk2OWRkNzJjMzU5YzJhYjRjNzVjNDA0MTFjM2JiN2U1ZTVh
|
15
|
+
NDU0NzU4ZmUxOTJlYzQ4OThjY2MxOTk2NzgxZjM0NzY3M2I4Njc=
|
data/CHANGELOG.md
CHANGED
@@ -1,3 +1,7 @@
|
|
1
|
+
v1.1.3, 2016-11-10 ([changes](https://github.com/sparkapi/sparkql/compare/v1.1.2...v1.1.3))
|
2
|
+
-------------------
|
3
|
+
* [IMPROVEMENT] New functions: tolower() and toupper()
|
4
|
+
|
1
5
|
v1.1.2, 2016-11-08 ([changes](https://github.com/sparkapi/sparkql/compare/v1.1.1...v1.1.2))
|
2
6
|
-------------------
|
3
7
|
* [IMPROVEMENT] New functions: year(), month(), day(), hour(), minute(), second(), and
|
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
1.1.
|
1
|
+
1.1.3
|
@@ -34,6 +34,16 @@ class Sparkql::FunctionResolver
|
|
34
34
|
}],
|
35
35
|
:return_type => :character
|
36
36
|
},
|
37
|
+
:tolower => {
|
38
|
+
:args => [[:field, :character]],
|
39
|
+
:resolve_for_type => true,
|
40
|
+
:return_type => :character
|
41
|
+
},
|
42
|
+
:toupper => {
|
43
|
+
:args => [[:field, :character]],
|
44
|
+
:resolve_for_type => true,
|
45
|
+
:return_type => :character
|
46
|
+
},
|
37
47
|
:linestring => {
|
38
48
|
:args => [:character],
|
39
49
|
:return_type => :shape
|
@@ -41,7 +51,7 @@ class Sparkql::FunctionResolver
|
|
41
51
|
:days => {
|
42
52
|
:args => [:integer],
|
43
53
|
:return_type => :datetime
|
44
|
-
},
|
54
|
+
},
|
45
55
|
:months => {
|
46
56
|
:args => [:integer],
|
47
57
|
:return_type => :datetime
|
@@ -217,7 +227,36 @@ class Sparkql::FunctionResolver
|
|
217
227
|
:value => regular_expression
|
218
228
|
}
|
219
229
|
end
|
220
|
-
|
230
|
+
|
231
|
+
def tolower_character(string)
|
232
|
+
{
|
233
|
+
:type => :character,
|
234
|
+
:value => string.to_s.downcase
|
235
|
+
}
|
236
|
+
end
|
237
|
+
|
238
|
+
def tolower_field(arg) {
|
239
|
+
:type => :function,
|
240
|
+
:value => "tolower",
|
241
|
+
:args => [arg]
|
242
|
+
}
|
243
|
+
end
|
244
|
+
|
245
|
+
def toupper_character(string)
|
246
|
+
{
|
247
|
+
:type => :character,
|
248
|
+
:value => string.to_s.upcase
|
249
|
+
}
|
250
|
+
end
|
251
|
+
|
252
|
+
def toupper_field(arg)
|
253
|
+
{
|
254
|
+
:type => :function,
|
255
|
+
:value => "toupper",
|
256
|
+
:args => [arg]
|
257
|
+
}
|
258
|
+
end
|
259
|
+
|
221
260
|
# Offset the current timestamp by a number of days
|
222
261
|
def days(num)
|
223
262
|
# date calculated as the offset from midnight tommorrow. Zero will provide values for all times
|
@@ -14,6 +14,44 @@ class FunctionResolverTest < Test::Unit::TestCase
|
|
14
14
|
assert_equal(["35.12 -68.33", 1.0], value[:function_parameters])
|
15
15
|
end
|
16
16
|
|
17
|
+
test "tolower(SomeField)" do
|
18
|
+
f = FunctionResolver.new('tolower', [{:type => :field, :value => "City"}])
|
19
|
+
f.validate
|
20
|
+
assert !f.errors?, "Errors #{f.errors.inspect}"
|
21
|
+
value = f.call
|
22
|
+
assert_equal :function, value[:type]
|
23
|
+
assert_equal 'tolower', value[:value]
|
24
|
+
assert_equal "City", value[:args].first
|
25
|
+
end
|
26
|
+
|
27
|
+
test "tolower('string')" do
|
28
|
+
f = FunctionResolver.new('tolower', [{:type => :character, :value => "STRING"}])
|
29
|
+
f.validate
|
30
|
+
assert !f.errors?, "Errors #{f.errors.inspect}"
|
31
|
+
value = f.call
|
32
|
+
assert_equal :character, value[:type]
|
33
|
+
assert_equal 'string', value[:value]
|
34
|
+
end
|
35
|
+
|
36
|
+
test "toupper(SomeField)" do
|
37
|
+
f = FunctionResolver.new('toupper', [{:type => :field, :value => "City"}])
|
38
|
+
f.validate
|
39
|
+
assert !f.errors?, "Errors #{f.errors.inspect}"
|
40
|
+
value = f.call
|
41
|
+
assert_equal :function, value[:type]
|
42
|
+
assert_equal 'toupper', value[:value]
|
43
|
+
assert_equal "City", value[:args].first
|
44
|
+
end
|
45
|
+
|
46
|
+
test "toupper('string')" do
|
47
|
+
f = FunctionResolver.new('toupper', [{:type => :character, :value => "string"}])
|
48
|
+
f.validate
|
49
|
+
assert !f.errors?, "Errors #{f.errors.inspect}"
|
50
|
+
value = f.call
|
51
|
+
assert_equal :character, value[:type]
|
52
|
+
assert_equal 'STRING', value[:value]
|
53
|
+
end
|
54
|
+
|
17
55
|
test "now()" do
|
18
56
|
start = Time.now
|
19
57
|
f = FunctionResolver.new('now', [])
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: sparkql
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.1.
|
4
|
+
version: 1.1.3
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Wade McEwen
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2016-11-
|
11
|
+
date: 2016-11-10 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: georuby
|