plok 1.1.1 → 1.1.2

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: 7801b68f7ae1a30624a95fcf9713bb1251f2e7831960ddd173e64b152ba24f94
4
- data.tar.gz: 057c7d13a8922bdeba6150e6d2df6ecec65d0f8af169a50b879ccadbee3688b3
3
+ metadata.gz: fe8e289922e36071642ae46ff78b49eded873476b9721668a5c9df0f8d51bd4f
4
+ data.tar.gz: 06ee8edde78842db587ee3e0076b9a791cd78247d9987ba07a5441bd0f03c270
5
5
  SHA512:
6
- metadata.gz: '087677f2caccca0fc4d2e342790860f8514aa002447f2555e018aa4e60e5bb817111209c7cea3c84452ec24b717291fe1e05dc061623cc7b5dd2cd5791271f4b'
7
- data.tar.gz: 394542cf38ab37c5740622fee0fc6de8c0b9bd9697e91b94323a3b0edd84ce60aa750af2daf14ccdaaa5782282d548c5ac7a9a77fd56567e936f9164c9a631c2
6
+ metadata.gz: 562556d7edcf1db8f174203ba55fd3e7cf111ffdab3b1b63d0532a44f3d09d955c9ff7545e83a08e0ed7cf22dff9afd2b14fd5e0857217eae08448f47d8f2915
7
+ data.tar.gz: c2d565bdfdd0aae5244dd82d9e7bcd04dcb672a7cb7fcc7f8fe40bf5cdd87f3f085a4f33a51c912db353b76d633c0b53b9e5a98a40704b1d0e0d3640c78ec2de
@@ -16,17 +16,17 @@ module Plok::Searchable
16
16
  end
17
17
 
18
18
  def trigger_indices_save!
19
- self.class.searchable_fields_list.each do |namespace, keys|
20
- keys.each do |key|
21
- if key == :flexible_content
19
+ self.class.searchable_fields_list.each do |namespace, fields|
20
+ fields.each do |field|
21
+ if field[:name] == :flexible_content
22
22
  save_flexible_content_search_indices!(namespace) && next
23
23
  end
24
24
 
25
- if respond_to?(:translatable?) && self.class.translatable_fields_list.include?(key)
26
- save_translatable_search_index!(namespace, key) && next
25
+ if respond_to?(:translatable?) && self.class.translatable_fields_list.include?(field[:name])
26
+ save_translatable_search_index!(namespace, field[:name]) && next
27
27
  end
28
28
 
29
- save_search_index!(namespace, key)
29
+ save_search_index!(namespace, field[:name], conditions: field[:conditions])
30
30
  end
31
31
  end
32
32
  end
@@ -51,7 +51,11 @@ module Plok::Searchable
51
51
  end
52
52
  end
53
53
 
54
- def save_search_index!(namespace, key, value: nil, locale: nil)
54
+ def save_search_index!(namespace, key, value: nil, locale: nil, conditions: [])
55
+ if conditions.any?
56
+ return unless conditions.map { |c| send(c) }.all?
57
+ end
58
+
55
59
  value = if value.present?
56
60
  value
57
61
  elsif ActiveRecord::Base.connection.column_exists?(self.class.table_name, key)
@@ -81,18 +85,23 @@ module Plok::Searchable
81
85
  end
82
86
 
83
87
  module ClassMethods
84
- def searchable_field(namespace, key)
85
- return if searchable_fields_list.dig(namespace.to_sym)&.include?(key.to_sym)
88
+ def searchable_field(namespace, key, conditions)
89
+ return if !!searchable_fields_list.dig(namespace.to_sym)&.detect do |field|
90
+ field[:name] == key.to_sym
91
+ end
86
92
 
87
93
  if searchable_fields_list[namespace.to_sym].blank?
88
94
  searchable_fields_list[namespace.to_sym] = []
89
95
  end
90
96
 
91
- searchable_fields_list[namespace.to_sym] << key.to_sym
97
+ searchable_fields_list[namespace.to_sym] << {
98
+ name: key.to_sym,
99
+ conditions: conditions
100
+ }
92
101
  end
93
102
 
94
103
  def plok_searchable(namespace: nil, fields: [], conditions: [])
95
- fields.each { |key| searchable_field(namespace, key) }
104
+ fields.each { |key| searchable_field(namespace, key, conditions) }
96
105
  end
97
106
 
98
107
  def searchable_fields_list
data/lib/plok/version.rb CHANGED
@@ -1,3 +1,3 @@
1
1
  module Plok
2
- VERSION = '1.1.1'
2
+ VERSION = '1.1.2'
3
3
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: plok
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.1.1
4
+ version: 1.1.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Davy Hellemans
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2022-11-05 00:00:00.000000000 Z
12
+ date: 2022-11-09 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: rails