plok 1.1.1 → 1.1.2

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: 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