recourse 2.0.2 → 3.0.0

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: 60194be6140d65a8864c22b460e7887350d353f4d1c57d678659c71bafbd142c
4
- data.tar.gz: 7613666c954f8aedb3dd7798cd961a14c17f4518efa6a9fbd8cfebf5477a6b0b
3
+ metadata.gz: '091131788570e0d656c7d18722d0ee4f8250407302b6837b05f00c80cedbe187'
4
+ data.tar.gz: 055b6fbf31f3709bd0f8cceea226a80d3b16449f19ec2dfb76702063f13e7173
5
5
  SHA512:
6
- metadata.gz: 7e354bc6c67f848bd7155dcf9c01eeb07817d337681d2d1b1f42025059bc41aa4b52f536af5de504f12a271b85db7142a89d593afe7c8f345b4b77e40700f2dc
7
- data.tar.gz: 51d1b0cc87aece205403feeeaf9f347b2f91840ca8bc55b0691ce3d074eca23c3d694e06baf5ccf5971fd1c202c1bcb0c982bcd4046e6805e0ded353941428eb
6
+ metadata.gz: 5e7e0c9f483521daa886026dd2249c4e66772afd4f2ce85a876f1b58e469f4b99c5796291cd26686f4207e192475c8ac4a28a5761a971efbc37df3740131ac09
7
+ data.tar.gz: f6f76dbfe6678da9edbf3e3994a0646ade63bacd2ef2b2d540730cd0f4a7748508f40334c77e98a9087ce4eab63099d6b59080b14c6ca32e4aec7a92bde5005e
@@ -5,7 +5,7 @@ module SearchableHelper
5
5
  # @param [ApplicationRecord] model the model of each object returned by the search
6
6
  def search_form(q:, model:, url: url_for(model))
7
7
  search_form_for(q, search_form_params(url: url)) do |form|
8
- safe_join [filter_field_for(form, model:), search_field_for(form, model:)].compact
8
+ safe_join [*filter_fields_for(form, model:), search_field_for(form, model:)].compact
9
9
  end
10
10
  end
11
11
 
@@ -16,14 +16,16 @@ module SearchableHelper
16
16
 
17
17
  private
18
18
 
19
- def filter_field_for(form, model:)
20
- method = model.filter_field
21
- choices = model.filter_choices
22
- options = { prompt: model.filter_prompt }
23
- form.select method, choices, options, filter_field_params if method && choices
19
+ def filter_fields_for(form, model:)
20
+ selects = model.filter_fields.map do |method, options = {}|
21
+ choices = options.delete :choices
22
+ form.select method, choices, options, filter_field_params if choices
23
+ end
24
+ safe_join selects.compact
24
25
  end
25
26
 
26
27
  def search_field_for(form, model:)
28
+ return unless model.search_field
27
29
  adorn = tag.svg width: 16, height: 16, viewBox: '0 0 16 16', xmlns: 'http://www.w3.org/2000/svg' do
28
30
  tag.path d: 'M11.742 10.344a6.5 6.5 0 1 0-1.397 1.398h-.001q.044.06.098.115l3.85 3.85a1 1 0 0 0 1.415-1.414l-3.85-3.85a1 1 0 0 0-.115-.1zM12 6.5a5.5 5.5 0 1 1-11 0 5.5 5.5 0 0 1 11 0'
29
31
  end
@@ -33,7 +35,7 @@ private
33
35
 
34
36
  def search_form_params(url:)
35
37
  {
36
- url: url, class: 'col-8 sm:col-6 md:col-4 d-flex pe-4', role: 'search',
38
+ url: url, class: 'col-6 d-flex pe-4', role: 'search',
37
39
  data: { turbo_frame: :results, turbo_action: :advance },
38
40
  }
39
41
  end
@@ -26,16 +26,7 @@ module Recourse
26
26
  end
27
27
 
28
28
  # @note to be overriden by subclasses -- the name of the field to filter by.
29
- def filter_field
30
- end
31
-
32
- # @note to be overriden by subclasses -- the prompt for the field to filter by.
33
- def filter_prompt
34
- end
35
-
36
- # @note to be overriden by subclasses -- the values for the field to filter by.
37
- def filter_choices
38
- end
29
+ def filter_fields = {}
39
30
  end
40
31
  end
41
32
 
@@ -1,3 +1,3 @@
1
1
  module Recourse
2
- VERSION = '2.0.2'
2
+ VERSION = '3.0.0'
3
3
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: recourse
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.0.2
4
+ version: 3.0.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Claudio Baccigalupo