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 +4 -4
- data/app/models/effective/resources/relation.rb +15 -5
- data/lib/effective_resources/version.rb +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: af933d56ed2a8a49c9b05dfee64b5a8e7a13d84358c54966208507f1703090ec
|
4
|
+
data.tar.gz: dd28e88602d3c2d9f4b908d79260b2849d34cbdd3c8b6c204a18c96c2ad2d217
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
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
|
-
|
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
|
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}"))
|
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.
|
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-
|
11
|
+
date: 2023-01-09 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rails
|