sparkql 1.1.10 → 1.1.11

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,15 +1,15 @@
1
1
  ---
2
2
  !binary "U0hBMQ==":
3
3
  metadata.gz: !binary |-
4
- OWZlM2JjZmE5OWM2ZDNkMDcwOGI3NDM3YjNhMWY5YmI0MWZkYTU0NQ==
4
+ MTkxNTEwOGJhMzYwNDEyMmU1OTBkNDkyZGJjNDNlY2NkMjY1MzI4ZA==
5
5
  data.tar.gz: !binary |-
6
- MzE2NzAxNGExYTVlNzZiMjQ5Yzk4YTBhMDdhNGUyNzJhMjc3M2FjMQ==
6
+ YWY0MzliNGIwNmQ5ODgwZDdhY2ZhZWFjMWIwMGU3NDg0YjNlMmQzOA==
7
7
  SHA512:
8
8
  metadata.gz: !binary |-
9
- YjYyOTJlMzYxOTcwMjBhYzdmOGUyY2Q3NTFiZDViYzM4MTQzMDgwMDQwY2M1
10
- NDM4NzE5MzA2MmMwMTZmYmI4ODlhODk5NzEwY2E2MWE5NjNmZWVhZjYxNWEx
11
- YjVhODQxZjZjZGEwODNkNWMxMGEzMWVkZWJhZGU0NjA4YzdiYWI=
9
+ OTQ4NzkxMGJiZmI4ZTY3NWYxYmM0NmMzOThhNzY4NGIxNGMxZWU3MTA1NDMw
10
+ OTFmNjFkNTYwODIwMGEwZDdkYjE5NGM3ZjA0NjM5ZDE2ZDlhN2ViYWFjMGRk
11
+ NGM5YjcwNWZhMzczNGM1MjM1MmJkNTRkNjBhZWJlMjBlYWExODU=
12
12
  data.tar.gz: !binary |-
13
- Y2U3MTQyODlhNmQ1Y2FlYWJhMDEwODcyNjY1YjE1YjAzN2M2MDg1ZGU5Mjc0
14
- YTQzOWQ3OTE3OGJhOTk0MWM1YjE5Y2Q1YTE5MzI4MzEwYTMyMzU5YzhhNmQ2
15
- YTZjMWU5ZDA2M2Y1ZDhmNGU1NDZiZWY2ZjM1MjUzNzI0ZTFhOWM=
13
+ OGNmOTM4Yjg1MWRmZDg1OGYzYmE2ZTI2ODYwNjNiMjdlZTY4NTIwMGM0M2M4
14
+ OGFlYmJlMDljYzZlMDRiODY2MzdiNDM3OWY0Mjk1OWI5YzA0NGJhMGE4NjJm
15
+ MDA1MWEzYmNmNWZhNjBmM2VhZWY3ZjkzNzAwMWNjYTk1ZjM5NzE=
data/CHANGELOG.md CHANGED
@@ -1,3 +1,7 @@
1
+ v1.1.11, 2018-03-30
2
+ -------------------
3
+ * [BUGFIX] contains(), startswith(), endswith() are now case-sensitive
4
+
1
5
  v1.1.10, 2018-01-05
2
6
  -------------------
3
7
  * [IMPROVEMENT] Allow radius to take integer
data/VERSION CHANGED
@@ -1 +1 @@
1
- 1.1.10
1
+ 1.1.11
@@ -209,7 +209,7 @@ class Sparkql::FunctionResolver
209
209
  end
210
210
  v = self.send(method, *real_vals)
211
211
 
212
- unless v.nil?
212
+ unless v.nil? || v.key?(:function_name)
213
213
  v[:function_name] = @name
214
214
  v[:function_parameters] = real_vals
215
215
  end
@@ -232,7 +232,7 @@ class Sparkql::FunctionResolver
232
232
 
233
233
  begin
234
234
  Regexp.new(regular_expression)
235
- rescue => e
235
+ rescue
236
236
  @errors << Sparkql::ParserError.new(:token => regular_expression,
237
237
  :message => "Invalid Regexp",
238
238
  :status => :fatal)
@@ -278,13 +278,16 @@ class Sparkql::FunctionResolver
278
278
  # Wrap this string in quotes, as we effectively translate
279
279
  # City Eq startswith('far')
280
280
  # ...to...
281
- # City Eq 'far*'
281
+ # City Eq '^far'
282
282
  #
283
283
  # The string passed in will merely be "far", rather than
284
284
  # the string literal "'far'".
285
- new_value = "'#{string}*'"
285
+ string = Regexp.escape(string)
286
+ new_value = "^#{string}"
286
287
 
287
288
  {
289
+ :function_name => "regex",
290
+ :function_parameters => [new_value, ''],
288
291
  :type => :character,
289
292
  :value => new_value
290
293
  }
@@ -294,13 +297,16 @@ class Sparkql::FunctionResolver
294
297
  # Wrap this string in quotes, as we effectively translate
295
298
  # City Eq endswith('far')
296
299
  # ...to...
297
- # City Eq '*far'
300
+ # City Eq regex('far$')
298
301
  #
299
302
  # The string passed in will merely be "far", rather than
300
303
  # the string literal "'far'".
301
- new_value = "'*#{string}'"
304
+ string = Regexp.escape(string)
305
+ new_value = "#{string}$"
302
306
 
303
307
  {
308
+ :function_name => "regex",
309
+ :function_parameters => [new_value, ''],
304
310
  :type => :character,
305
311
  :value => new_value
306
312
  }
@@ -310,13 +316,16 @@ class Sparkql::FunctionResolver
310
316
  # Wrap this string in quotes, as we effectively translate
311
317
  # City Eq contains('far')
312
318
  # ...to...
313
- # City Eq '*far*'
319
+ # City Eq regex('far')
314
320
  #
315
321
  # The string passed in will merely be "far", rather than
316
322
  # the string literal "'far'".
317
- new_value = "'*#{string}*'"
323
+ string = Regexp.escape(string)
324
+ new_value = "#{string}"
318
325
 
319
326
  {
327
+ :function_name => "regex",
328
+ :function_parameters => [new_value, ''],
320
329
  :type => :character,
321
330
  :value => new_value
322
331
  }
@@ -575,7 +584,7 @@ class Sparkql::FunctionResolver
575
584
  term.strip.split(/\s+/).reverse.map { |i| i.to_f }
576
585
  end
577
586
  coords
578
- rescue => e
587
+ rescue
579
588
  @errors << Sparkql::ParserError.new(:token => coord_string,
580
589
  :message => "Unable to parse coordinate string.",
581
590
  :status => :fatal )
@@ -286,9 +286,9 @@ class FunctionResolverTest < Test::Unit::TestCase
286
286
  end
287
287
 
288
288
  test "startswith(), endswith() and contains()" do
289
- [{'startswith' => "'far*'"},
290
- {'endswith' => "'*far'"},
291
- {'contains' => "'*far*'"}].each do |test_case|
289
+ [{'startswith' => "^far"},
290
+ {'endswith' => "far$"},
291
+ {'contains' => "far"}].each do |test_case|
292
292
  function = test_case.keys.first
293
293
  expected_value = test_case[function]
294
294
 
@@ -298,6 +298,8 @@ class FunctionResolverTest < Test::Unit::TestCase
298
298
  value = f.call
299
299
  assert_equal :character, value[:type]
300
300
  assert_equal expected_value, value[:value]
301
+ assert_equal 'regex', value[:function_name]
302
+ assert_equal [value[:value], ''], value[:function_parameters]
301
303
  end
302
304
  end
303
305
 
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.10
4
+ version: 1.1.11
5
5
  platform: ruby
6
6
  authors:
7
7
  - Wade McEwen
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2018-01-11 00:00:00.000000000 Z
11
+ date: 2018-03-30 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: georuby