command_search 0.12.0 → 0.12.1

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: e1d615f992c4521f18821e9b3ee2d96fb800095abeadf549f59b8c24fb6419b6
4
- data.tar.gz: df4378e2ab56dc1ee3299582f8a9aed11d4d64d5dd1d3d6d38a0d208a0d48f1f
3
+ metadata.gz: c0a659ab861cfea9badba5aa2c4bdf6e8797c5ac820c468bf87f98519040f1c3
4
+ data.tar.gz: 5d8f4ff47c1b2d7dc917d0e791d27a071943c9d0783968ba831894f67bee9032
5
5
  SHA512:
6
- metadata.gz: 5707ed405d3f6133a6437821b5df18a076b67c299334a226639d8d9e62486f3f385a50907a2bcc57c63a86280125745f3a00975b880086539df899b1106a5acb
7
- data.tar.gz: 312e172cc413d7f0d2efb127fd7858454b383b6eed72d1102a416f8d408eefaa831247caf5b27c67ae4959b7ac50871ccf5b05d6eb4abaa6cc6dea40d61425c7
6
+ metadata.gz: 86e941a3b2e15fd637b657c2bf102887b5ea888a783105492edfe5390fc0a908f546f538197b7c3af46cb78e9b838f3a90119c5ac9bbe2abfca795d92dfead86
7
+ data.tar.gz: 334d7bccc459f47d47f445217ae9dc702f5dbc432b3c20367a48678ea2ac2d698cb55257987097b54e483cc0cbd64beadc5a11f9ff8338a9cca5fd8ab9553316
@@ -24,22 +24,22 @@ module CommandSearch
24
24
  Parser.parse!(ast)
25
25
  Optimizer.optimize!(ast)
26
26
  if type == :postgres
27
- Normalizer.normalize!(ast, fields, false)
27
+ Normalizer.normalize!(ast, fields)
28
28
  return Postgres.build_query(ast)
29
29
  end
30
30
  if type == :sqlite
31
- Normalizer.normalize!(ast, fields, false)
31
+ Normalizer.normalize!(ast, fields)
32
32
  return Sqlite.build_query(ast)
33
33
  end
34
34
  if type == :mysql
35
- Normalizer.normalize!(ast, fields, false)
35
+ Normalizer.normalize!(ast, fields)
36
36
  return Mysql.build_query(ast)
37
37
  end
38
38
  if type == :mysqlV5
39
- Normalizer.normalize!(ast, fields, false)
39
+ Normalizer.normalize!(ast, fields)
40
40
  return MysqlV5.build_query(ast)
41
41
  end
42
- Normalizer.normalize!(ast, fields)
42
+ Normalizer.normalize!(ast, fields, true)
43
43
  return Mongoer.build_query(ast) if type == :mongo
44
44
  ast
45
45
  end
@@ -20,6 +20,7 @@ module CommandSearch
20
20
  # item_val.to_s.match?(search)
21
21
  elsif type == Time
22
22
  item_time = item_val.to_time
23
+ return false if search.nil?
23
24
  search.first <= item_time && item_time < search.last
24
25
  else
25
26
  item_val == search
@@ -31,8 +31,13 @@ module CommandSearch
31
31
  if times
32
32
  search_node[:value] = [times.first, times.last]
33
33
  else
34
- search_node[:value] = nil
35
- return
34
+ time_parsed = Time.parse(str) rescue nil
35
+ if time_parsed
36
+ search_node[:value] = [time_parsed, time_parsed + 1]
37
+ else
38
+ search_node[:value] = nil
39
+ return
40
+ end
36
41
  end
37
42
  end
38
43
  return unless node[:type] == :compare
@@ -114,7 +119,8 @@ module CommandSearch
114
119
  end
115
120
  end
116
121
 
117
- def normalize!(ast, fields, cast_all = true)
122
+ # TODO: default to false
123
+ def normalize!(ast, fields, cast_all = false)
118
124
  ast.map! do |node|
119
125
  if node[:type] == :and || node[:type] == :or || node[:type] == :not
120
126
  normalize!(node[:value], fields, cast_all)
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: command_search
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.12.0
4
+ version: 0.12.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - zumbalogy
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2020-10-22 00:00:00.000000000 Z
11
+ date: 2021-01-04 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: chronic
@@ -61,7 +61,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
61
61
  - !ruby/object:Gem::Version
62
62
  version: '0'
63
63
  requirements: []
64
- rubygems_version: 3.0.8
64
+ rubygems_version: 3.1.4
65
65
  signing_key:
66
66
  specification_version: 4
67
67
  summary: Let users query collections with ease.