sparkql 1.2.6 → 1.2.7

Sign up to get free protection for your applications and to get access to all the features.
@@ -125,19 +125,23 @@ class ParserTest < Test::Unit::TestCase
125
125
  end
126
126
 
127
127
  def test_function_days
128
- d = Date.today
129
- start = Time.utc(d.year,d.month,d.day,0,0,0)
130
- filter = "OriginalEntryTimestamp Ge days(-7)"
128
+ dt = DateTime.new(2021, 2, 22, 0, 0, 0, 0)
129
+ DateTime.expects(:now).returns(dt)
131
130
  @parser = Parser.new
132
- expressions = @parser.parse(filter)
133
- assert !@parser.errors?, "errors #{@parser.errors.inspect}"
134
- assert_equal 'days(-7)', expressions.first[:condition]
135
-
136
- vals = expressions.first[:value].split('-')
131
+ expressions = @parser.parse "ExpirationDate Gt days(10)"
132
+ assert !@parser.errors?
133
+ assert_equal "2021-03-04", expressions.first[:value]
134
+ assert_equal 'days(10)', expressions.first[:condition]
135
+ end
137
136
 
138
- test_time = Time.utc(vals[0].to_i, vals[1].to_i, vals[2].to_i)
139
-
140
- assert (-605000 < test_time - start && -604000 > test_time - start), "Time range off by more than five seconds #{test_time - start} '#{test_time} - #{start}'"
137
+ def test_function_weekdays
138
+ dt = DateTime.new(2021, 2, 22, 0, 0, 0, 0)
139
+ DateTime.expects(:now).returns(dt)
140
+ @parser = Parser.new
141
+ expressions = @parser.parse "ExpirationDate Gt weekdays(10)"
142
+ assert !@parser.errors?
143
+ assert_equal "2021-03-08", expressions.first[:value]
144
+ assert_equal 'weekdays(10)', expressions.first[:condition]
141
145
  end
142
146
 
143
147
  def test_function_now
@@ -388,10 +392,40 @@ class ParserTest < Test::Unit::TestCase
388
392
  test "invalid regex" do
389
393
  filter = "ParcelNumber Eq regex('[1234', '')"
390
394
  @parser = Parser.new
391
- expressions = @parser.parse(filter)
395
+ @parser.parse(filter)
392
396
  assert @parser.errors?, "Parser error expected due to invalid regex"
393
397
  end
394
398
 
399
+ test "dayofyear function parses" do
400
+ filter = "dayofyear(DatetimeField) Eq 2012"
401
+ @parser = Parser.new
402
+ expressions = @parser.parse(filter)
403
+ assert !@parser.errors?, @parser.errors.inspect
404
+ function = expressions.first[:field_manipulations]
405
+ assert_equal 'dayofyear', function[:function_name]
406
+ assert_equal 'DatetimeField', function[:function_parameters].first
407
+ end
408
+
409
+ test "dayofweek function parses" do
410
+ filter = "dayofweek(DatetimeField) Eq 7"
411
+ @parser = Parser.new
412
+ expressions = @parser.parse(filter)
413
+ assert !@parser.errors?, @parser.errors.inspect
414
+ function = expressions.first[:field_manipulations]
415
+ assert_equal 'dayofweek', function[:function_name]
416
+ assert_equal 'DatetimeField', function[:function_parameters].first
417
+ end
418
+
419
+ test "weekdays function resolves" do
420
+ filter = "DatetimeField Eq weekdays(10)"
421
+ @parser = Parser.new
422
+ expressions = @parser.parse(filter)
423
+ assert !@parser.errors?, @parser.errors.inspect
424
+ function = expressions.first
425
+ assert_equal 'weekdays', function[:function_name]
426
+ assert_equal 10, function[:function_parameters].first
427
+ end
428
+
395
429
  test "allow timezone offsets" do
396
430
  values = [
397
431
  "2013-07-26",
@@ -418,7 +452,7 @@ class ParserTest < Test::Unit::TestCase
418
452
  assert_equal expressions.first[:value], value, "#{value} failed"
419
453
  end
420
454
  end
421
-
455
+
422
456
  test "Location Eq polygon()" do
423
457
  filter = "Location Eq polygon('35.12 -68.33, 35.13 -68.33, 35.13 -68.32, 35.12 -68.32')"
424
458
  @parser = Parser.new
metadata CHANGED
@@ -1,99 +1,99 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: sparkql
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.2.6
4
+ version: 1.2.7
5
5
  platform: ruby
6
6
  authors:
7
7
  - Wade McEwen
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2019-04-04 00:00:00.000000000 Z
11
+ date: 2021-05-06 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: georuby
15
15
  requirement: !ruby/object:Gem::Requirement
16
16
  requirements:
17
- - - ~>
17
+ - - "~>"
18
18
  - !ruby/object:Gem::Version
19
19
  version: '2.0'
20
20
  type: :runtime
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
- - - ~>
24
+ - - "~>"
25
25
  - !ruby/object:Gem::Version
26
26
  version: '2.0'
27
27
  - !ruby/object:Gem::Dependency
28
- name: racc
28
+ name: ci_reporter
29
29
  requirement: !ruby/object:Gem::Requirement
30
30
  requirements:
31
- - - ~>
31
+ - - "~>"
32
32
  - !ruby/object:Gem::Version
33
- version: 1.4.8
33
+ version: '1.6'
34
34
  type: :development
35
35
  prerelease: false
36
36
  version_requirements: !ruby/object:Gem::Requirement
37
37
  requirements:
38
- - - ~>
38
+ - - "~>"
39
39
  - !ruby/object:Gem::Version
40
- version: 1.4.8
40
+ version: '1.6'
41
41
  - !ruby/object:Gem::Dependency
42
- name: rake
42
+ name: mocha
43
43
  requirement: !ruby/object:Gem::Requirement
44
44
  requirements:
45
- - - ~>
45
+ - - "~>"
46
46
  - !ruby/object:Gem::Version
47
- version: 0.9.2
47
+ version: 0.12.0
48
48
  type: :development
49
49
  prerelease: false
50
50
  version_requirements: !ruby/object:Gem::Requirement
51
51
  requirements:
52
- - - ~>
52
+ - - "~>"
53
53
  - !ruby/object:Gem::Version
54
- version: 0.9.2
54
+ version: 0.12.0
55
55
  - !ruby/object:Gem::Dependency
56
- name: test-unit
56
+ name: racc
57
57
  requirement: !ruby/object:Gem::Requirement
58
58
  requirements:
59
- - - ~>
59
+ - - "~>"
60
60
  - !ruby/object:Gem::Version
61
- version: 2.1.0
61
+ version: 1.4.8
62
62
  type: :development
63
63
  prerelease: false
64
64
  version_requirements: !ruby/object:Gem::Requirement
65
65
  requirements:
66
- - - ~>
66
+ - - "~>"
67
67
  - !ruby/object:Gem::Version
68
- version: 2.1.0
68
+ version: 1.4.8
69
69
  - !ruby/object:Gem::Dependency
70
- name: ci_reporter
70
+ name: rake
71
71
  requirement: !ruby/object:Gem::Requirement
72
72
  requirements:
73
- - - ~>
73
+ - - "~>"
74
74
  - !ruby/object:Gem::Version
75
- version: '1.6'
75
+ version: 0.9.2
76
76
  type: :development
77
77
  prerelease: false
78
78
  version_requirements: !ruby/object:Gem::Requirement
79
79
  requirements:
80
- - - ~>
80
+ - - "~>"
81
81
  - !ruby/object:Gem::Version
82
- version: '1.6'
82
+ version: 0.9.2
83
83
  - !ruby/object:Gem::Dependency
84
- name: mocha
84
+ name: test-unit
85
85
  requirement: !ruby/object:Gem::Requirement
86
86
  requirements:
87
- - - ~>
87
+ - - "~>"
88
88
  - !ruby/object:Gem::Version
89
- version: 0.12.0
89
+ version: 2.1.0
90
90
  type: :development
91
91
  prerelease: false
92
92
  version_requirements: !ruby/object:Gem::Requirement
93
93
  requirements:
94
- - - ~>
94
+ - - "~>"
95
95
  - !ruby/object:Gem::Version
96
- version: 0.12.0
96
+ version: 2.1.0
97
97
  description: Specification and base implementation of the Spark API parsing system.
98
98
  email:
99
99
  - wade@fbsdata.com
@@ -101,8 +101,7 @@ executables: []
101
101
  extensions: []
102
102
  extra_rdoc_files: []
103
103
  files:
104
- - .gitignore
105
- - .ruby-version
104
+ - ".gitignore"
106
105
  - CHANGELOG.md
107
106
  - GRAMMAR.md
108
107
  - Gemfile
@@ -149,17 +148,17 @@ require_paths:
149
148
  - lib
150
149
  required_ruby_version: !ruby/object:Gem::Requirement
151
150
  requirements:
152
- - - ! '>='
151
+ - - ">="
153
152
  - !ruby/object:Gem::Version
154
- version: '0'
153
+ version: '2.3'
155
154
  required_rubygems_version: !ruby/object:Gem::Requirement
156
155
  requirements:
157
- - - ! '>='
156
+ - - ">="
158
157
  - !ruby/object:Gem::Version
159
158
  version: '0'
160
159
  requirements: []
161
160
  rubyforge_project: sparkql
162
- rubygems_version: 2.2.5
161
+ rubygems_version: 2.7.6
163
162
  signing_key:
164
163
  specification_version: 4
165
164
  summary: API Parser engine for filter searching
data/.ruby-version DELETED
@@ -1 +0,0 @@
1
- 1.9.3