like_query 0.1.8 → 0.1.9

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 4dd78d6cee1f2c1de9f98dca1ba3fecc9a6d4fca67b705a98c0a7d76e0bf05a4
4
- data.tar.gz: f785e5341d8c8e397a858af100c67e27c0e25551c181cf13e5b8d146da42f47c
3
+ metadata.gz: 218fe9ef241c396ed43d5a0daffe4fb69fceccf534b2b15b425eca0e56cd5f0d
4
+ data.tar.gz: a3a37469d41c7ec574868480691dd727c61a8908ad34816c23297775b830323c
5
5
  SHA512:
6
- metadata.gz: 04732f1e9d3177ea44ae7cff882007ea53ce893c349cd22d4ce7ad2301759eed886697ea20cc5b23c8a127ac081c089cab27acc97c5214330b9f18444cd81b70
7
- data.tar.gz: 3e60c6de1f037a4c371227f6cf622e8e15029dfe1780ae5ecd58554d8bfed31ac9404fd6edcfdc578f7daf20849a48ccd92be2bac4202e78093dfd37a0620c53
6
+ metadata.gz: 134b7f5d618b4828a973de21a34250bc16cae0cfe086819cd4927a99941e4ba6cde50b1c2883feb4a63cc413333234076b15f7dfa3e8cbc81878692e04028481
7
+ data.tar.gz: 19ed347cd40c60819bf56d7ffdf28e6c64b183367bb5e9f11282cf8fec89450a95df0e88b623f477c2eeacb4f2c66f5877dd224e91c0235eaf9806205b088a7c
@@ -13,7 +13,7 @@ module LikeQuery
13
13
  raise "only one array can be given: Either schema as one array or as multiple args, not as array"
14
14
  end
15
15
 
16
- queries = nil
16
+ queries = []
17
17
  associations = []
18
18
  @like_query_schema = schema
19
19
 
@@ -21,15 +21,16 @@ module LikeQuery
21
21
 
22
22
  f_str = format_string_element(s)
23
23
 
24
- q = nil
24
+ q = []
25
25
 
26
26
  (schema.first.is_a?(Array) ? schema.first : schema).each do |p|
27
27
  dbg("• Iterate schema => #{p}")
28
28
  enum_lab = enum_keys(p, s)
29
29
 
30
30
  if enum_lab.present?
31
- q = arel_table[p].in(enum_lab)
32
- dbg(-> { " Query from enum => #{q.to_sql}" })
31
+ _q = arel_table[p].in(enum_lab).to_sql
32
+ dbg(-> { " Query from enum => #{_q}" })
33
+ q.push(_q)
33
34
 
34
35
  elsif p.is_a?(Hash)
35
36
  p.each do |k, v|
@@ -39,13 +40,13 @@ module LikeQuery
39
40
  if v.is_a?(Symbol) || v.is_a?(String)
40
41
  _q = create_arel(v, f_str, assoc)
41
42
  if _q.present?
42
- q = (q ? q.or(_q) : _q)
43
+ q.push(_q.to_sql)
43
44
  end
44
45
  elsif v.is_a?(Array)
45
46
  v.each do |_v|
46
47
  _q = create_arel(_v, f_str, assoc)
47
48
  if _q.present?
48
- q = (q ? q.or(_q) : _q)
49
+ q.push(_q.to_sql)
49
50
  end
50
51
  end
51
52
  else
@@ -56,21 +57,21 @@ module LikeQuery
56
57
  else
57
58
  _q = create_arel(p, f_str)
58
59
  if _q.present?
59
- q = (q ? q.or(_q) : _q)
60
+ q.push(_q.to_sql)
60
61
  end
61
62
 
62
63
  end
63
64
 
64
65
  end
65
- queries = (queries ? queries.and(q) : q)
66
+ queries.push("(#{q.join(' OR ')})")
66
67
  end
67
68
 
68
69
  if associations.present?
69
- r = left_outer_joins(associations).where(queries)
70
+ r = left_outer_joins(associations).where(queries.join(" AND "))
70
71
  dbg(->{"RESULT => #{r.to_sql}"})
71
72
  r
72
73
  else
73
- r = where(queries)
74
+ r = where(queries.join(" AND "))
74
75
  dbg(->{"RESULT => #{r.to_sql}"})
75
76
  r
76
77
  end
@@ -1,3 +1,3 @@
1
1
  module LikeQuery
2
- VERSION = "0.1.8"
2
+ VERSION = "0.1.9"
3
3
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: like_query
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.8
4
+ version: 0.1.9
5
5
  platform: ruby
6
6
  authors:
7
7
  - christian