effective_resources 1.9.12 → 1.9.13

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: c84fc7b85367038b6acea82974e25be087fe2f1f5dc02acb26a642f2e30a4456
4
- data.tar.gz: 18a47801a18fd254bb1d9d4b51ec7b0582194ecfd53442108d02c5b52b6dd560
3
+ metadata.gz: ed166aa8aeaf93b66de29429230623cad83d1b55f61b550f0b6e028d619c7362
4
+ data.tar.gz: 2843fd945c1c9dde784387b7db0d8b38187542f54aeaadee71876a1933c2c46f
5
5
  SHA512:
6
- metadata.gz: 821be02e8c9302b4459facfddf6c64423040fd21da5627c6b32ef4ee72ea8e739df1fa4dc60037c9cf97cbf6b0eb83d4c7d6bf71268a4b0ac21513f9e8829f8e
7
- data.tar.gz: 23917cb4747779edf1cd13014f1a181baebb0114c6035869dd72ee7eda95df0ec8a96ffbbb04c08c0ed631c92957d6a43418c5b9aaa7d76cc68ad86b42e5cae8
6
+ metadata.gz: 144e3041a712292e4a7becf6ff9e71c4092c50bff7ebbb06d13fc8f14f92c3ff9a1dcf3aaf20f4c5e5b06a1b6d52745930ab3fe877c88ca5f4c8c9d6a8ee16e3
7
+ data.tar.gz: e69d047183677c0176e6ffd941983a73bedf40040e49d413f1ea738766193eb686b52bfdb0063c7ca2f1bd637b753264708a99d41d254479689d2c52cc042fcf
@@ -21,7 +21,11 @@ module Effective
21
21
  collection ||= (klass.const_get(constant_pluralized) rescue nil) if defined?("#{klass.name}::#{constant_pluralized}")
22
22
  end
23
23
 
24
- { as: :select, polymorphic: true, collection: (collection || []) }.compact
24
+ if collection.present?
25
+ { as: :select, polymorphic: true, collection: (collection || []) }
26
+ else
27
+ { as: :string }
28
+ end
25
29
  when :has_and_belongs_to_many
26
30
  { as: :select }.merge(search_form_field_collection(has_and_belongs_to_many(name)))
27
31
  when :has_many
@@ -98,8 +98,16 @@ module Effective
98
98
  elsif name == :user # Polymorphic user
99
99
  relation.where(search_by_associated_conditions(association, term, fuzzy: fuzzy))
100
100
  else # Maybe from a string field
101
- id ||= Effective::Attribute.new(:integer).parse(term)
102
- relation.where("#{sql_column}_id = ? OR #{sql_column}_type = ?", id, (type || term))
101
+ collection = relation.none
102
+
103
+ relation.distinct("#{name}_type").pluck("#{name}_type").each do |klass_name|
104
+ resource = Effective::Resource.new(klass_name)
105
+ next unless resource.klass.present?
106
+
107
+ collection = collection.or(relation.where("#{name}_id": resource.search_any(term), "#{name}_type": klass_name))
108
+ end
109
+
110
+ collection
103
111
  end
104
112
  when :has_and_belongs_to_many, :has_many, :has_one
105
113
  relation.where(search_by_associated_conditions(association, term, fuzzy: fuzzy))
@@ -1,3 +1,3 @@
1
1
  module EffectiveResources
2
- VERSION = '1.9.12'.freeze
2
+ VERSION = '1.9.13'.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: 1.9.12
4
+ version: 1.9.13
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: 2021-12-22 00:00:00.000000000 Z
11
+ date: 2021-12-28 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rails