effective_resources 2.2.2 → 2.2.4

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: 0eda305985b8b6f064121996ea89bdc6fa97dc96fbd0eaa0bf465b37097f815f
4
- data.tar.gz: b962a2a0690c5931b8c86e730d3ea7cca7b47465451062360ec74873f94cd525
3
+ metadata.gz: af933d56ed2a8a49c9b05dfee64b5a8e7a13d84358c54966208507f1703090ec
4
+ data.tar.gz: dd28e88602d3c2d9f4b908d79260b2849d34cbdd3c8b6c204a18c96c2ad2d217
5
5
  SHA512:
6
- metadata.gz: c462cf9c88eab4d3d897fc5bd00738a61724fc4bf9f6587d38fa9ee3d726f57807c7a4b5d88ea3c83442fb99f255ade0977e18beedd6050506d1c77187e95913
7
- data.tar.gz: 8c8b7f7fec0d143f561002e7c9b8b5d10aaceb1ab7c7d9747614d68a55b464366bafd7d1aee01b034edb2da65aad0d686c91252f28ee3da472d5adc9affc6e56
6
+ metadata.gz: a46d1580c41d7597766cea58782d0e7c4092aca90210049b5155d9b0330c3b5ed01cb8f24d8ab299bc12fcdec13a3b9f79fb8e4959e4cb3b38af1a1d407164a2
7
+ data.tar.gz: a422ebe046792b4f000918c86a0df61e9884f276dbb5d580cce8ac02fb090186552cc25ae3da26682775460ef84a9da7a7296e2260e9e02c1a5ccec7d5960e0f
@@ -81,7 +81,7 @@ module Effective
81
81
  search_associated(name, value, as: sql_as, operation: sql_operation)
82
82
  else
83
83
  return relation.where(is_null(sql_column)) if value.to_s == 'nil'
84
- search_attribute(name, value, as: sql_as, operation: sql_operation)
84
+ search_attribute(name, value, as: sql_as, operation: sql_operation, sql_column: sql_column)
85
85
  end
86
86
  end
87
87
 
@@ -274,7 +274,7 @@ module Effective
274
274
  retval || raise("unable to search associated #{as} #{operation} #{name} for #{value}")
275
275
  end
276
276
 
277
- def search_attribute(name, value, as:, operation:)
277
+ def search_attribute(name, value, as:, operation:, sql_column:)
278
278
  raise 'expected relation to be present' unless relation
279
279
 
280
280
  attribute = relation.arel_table[name]
@@ -283,6 +283,9 @@ module Effective
283
283
  # If you pass an email attribute it can return nil so we return the full value
284
284
  term = Attribute.new(as).parse(value, name: name) || value
285
285
 
286
+ # If using the joined syntax from datatables
287
+ joined = (sql_column.to_s.split('.').first.to_s.include?(relation.arel_table.name) == false)
288
+
286
289
  searched = case as
287
290
  when :active_storage
288
291
  relation.send("with_attached_#{name}").references("#{name}_attachment")
@@ -302,7 +305,12 @@ module Effective
302
305
  end
303
306
  )
304
307
 
305
- relation.where(attribute.gteq(term)).where(attribute.lteq(end_at))
308
+ if joined
309
+ relation.where("#{sql_column} >= ? AND #{sql_column} <= ?", term, end_at)
310
+ else
311
+ relation.where(attribute.gteq(term)).where(attribute.lteq(end_at))
312
+ end
313
+
306
314
  end
307
315
 
308
316
  when :effective_obfuscation
@@ -327,9 +335,11 @@ module Effective
327
335
 
328
336
  # Simple operation search
329
337
  case operation
330
- when :eq then relation.where(attribute.eq(term))
338
+ when :eq then
339
+ joined ? relation.where("#{sql_column} = ?", term) : relation.where(attribute.eq(term))
340
+ when :matches then
341
+ joined ? relation.where("#{sql_column} #{ilike} ?", "%#{term}%") : relation.where(attribute.matches("%#{term}%"))
331
342
  when :not_eq then relation.where(attribute.not_eq(term))
332
- when :matches then relation.where(attribute.matches("%#{term}%"))
333
343
  when :does_not_match then relation.where(attribute.does_not_match("%#{term}%"))
334
344
  when :starts_with then relation.where(attribute.matches("#{term}%"))
335
345
  when :ends_with then relation.where(attribute.matches("%#{term}"))
@@ -1,3 +1,3 @@
1
1
  module EffectiveResources
2
- VERSION = '2.2.2'.freeze
2
+ VERSION = '2.2.4'.freeze
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: effective_resources
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.2.2
4
+ version: 2.2.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - Code and Effect
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2023-01-05 00:00:00.000000000 Z
11
+ date: 2023-01-09 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rails