forest_liana 9.17.3 → 9.17.4

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: 6827e64710a291b05c5a7363b968d70dc1ce182f8a3f7f05ef25496f168ab261
4
- data.tar.gz: 1afdf02d2d262fc58cfddc0bc845816f5b4a636069c15817d5d4963607d13734
3
+ metadata.gz: b7a86f85b47098ca555b8f032bec32c813acc38ab3f3c4a1195d144d3a87aed1
4
+ data.tar.gz: 658e86bf9a50f4301de598982879ef511b022901f1f2841c48d6e244efb4dbd5
5
5
  SHA512:
6
- metadata.gz: 124e2c6349b38bc9dea8ec3821cd0918f14f08cbf3f89d141424407734a32dadead2d0b0d5e379498b725fc06a266ab50c4969389072591553fe9da94f53b4e3
7
- data.tar.gz: a6e6d5c1f27d03abb33a0faa5f5f7fb77d879585cb3f299c9623e056e56921af785f650f2dbc69d5cc63bf1188336452dc93bb247ea3a59cfd325fd8ea577691
6
+ metadata.gz: 87b9319960622c67bf4bbea12e4a31447daf30e640a6d85c259dc857a3acec043edbb34b10cccd676d8a050e00068e343ba778e550c79821967ae78885d39360
7
+ data.tar.gz: 60a672c6dd59c250d973a4afd9e1738650106eab342f1af3a260ce6437e660e1e87a20613252bd0d826cec1bb262bbf3bc6dc2822e1db42aadfc237d075d5f36
@@ -75,7 +75,11 @@ module ForestLiana
75
75
  end
76
76
  # NOTICE: Rails 3 do not have a defined_enums method
77
77
  elsif REGEX_UUID.match(@search) && column.type == :uuid
78
- conditions << "#{column_name} = :search_value_for_uuid"
78
+ if column.respond_to?(:array) && column.array
79
+ conditions << ":search_value_for_uuid = ANY(#{column_name})"
80
+ else
81
+ conditions << "#{column_name} = :search_value_for_uuid"
82
+ end
79
83
  elsif @resource.respond_to?(:defined_enums) &&
80
84
  @resource.defined_enums.has_key?(column.name) &&
81
85
  !@resource.defined_enums[column.name][@search.downcase].nil?
@@ -1,3 +1,3 @@
1
1
  module ForestLiana
2
- VERSION = "9.17.3"
2
+ VERSION = "9.17.4"
3
3
  end
@@ -0,0 +1,48 @@
1
+ module ForestLiana
2
+ describe SearchQueryBuilder do
3
+ let(:user) { { 'id' => '1', 'rendering_id' => 1 } }
4
+ let(:collection) { ForestLiana::Model::Collection.new(name: 'Tree', fields: []) }
5
+ let(:search_uuid) { '75fbcb43-f6f8-4cd1-861f-09a61fd1ddad' }
6
+ let(:params) { { search: search_uuid, searchExtended: '0' } }
7
+ let(:builder) { described_class.new(params, [], collection, user) }
8
+
9
+ before do
10
+ allow(ForestLiana::ScopeManager)
11
+ .to receive(:append_scope_for_user)
12
+ .and_return(nil)
13
+ allow(ForestLiana)
14
+ .to receive(:schema_for_resource)
15
+ .and_return(ForestLiana::Model::Collection.new(name: 'Tree', fields: []))
16
+ end
17
+
18
+ describe '#perform' do
19
+ context 'when a column is an array uuid type' do
20
+ let(:array_uuid_column) do
21
+ double('Column', name: 'attachment_ids', type: :uuid, array: true).tap do |col|
22
+ allow(col).to receive(:respond_to?).with(:array).and_return(true)
23
+ end
24
+ end
25
+
26
+ let(:normal_uuid_column) do
27
+ double('Column', name: 'external_id', type: :uuid, array: false).tap do |col|
28
+ allow(col).to receive(:respond_to?).with(:array).and_return(true)
29
+ end
30
+ end
31
+
32
+ before do
33
+ allow(Tree).to receive(:columns).and_return([array_uuid_column, normal_uuid_column])
34
+ end
35
+
36
+ it 'searches the array column using ANY() syntax' do
37
+ result = builder.perform(Tree.all)
38
+ expect(result.to_sql).to match(/= ANY.*attachment_ids/i)
39
+ end
40
+
41
+ it 'searches the non-array uuid column using equality syntax' do
42
+ result = builder.perform(Tree.all)
43
+ expect(result.to_sql).to match(/"external_id"\s+=\s+'#{search_uuid}'/i)
44
+ end
45
+ end
46
+ end
47
+ end
48
+ end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: forest_liana
3
3
  version: !ruby/object:Gem::Version
4
- version: 9.17.3
4
+ version: 9.17.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - Sandro Munda
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2026-01-27 00:00:00.000000000 Z
11
+ date: 2026-05-21 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rails
@@ -465,6 +465,7 @@ files:
465
465
  - spec/services/forest_liana/schema_adapter_default_values_spec.rb
466
466
  - spec/services/forest_liana/schema_adapter_spec.rb
467
467
  - spec/services/forest_liana/scope_manager_spec.rb
468
+ - spec/services/forest_liana/search_query_builder_spec.rb
468
469
  - spec/services/forest_liana/serializer_factory_spec.rb
469
470
  - spec/services/forest_liana/smart_action_field_validator_spec.rb
470
471
  - spec/services/forest_liana/smart_action_form_parser_spec.rb
@@ -775,6 +776,7 @@ test_files:
775
776
  - spec/services/forest_liana/schema_adapter_default_values_spec.rb
776
777
  - spec/services/forest_liana/schema_adapter_spec.rb
777
778
  - spec/services/forest_liana/scope_manager_spec.rb
779
+ - spec/services/forest_liana/search_query_builder_spec.rb
778
780
  - spec/services/forest_liana/serializer_factory_spec.rb
779
781
  - spec/services/forest_liana/smart_action_field_validator_spec.rb
780
782
  - spec/services/forest_liana/smart_action_form_parser_spec.rb