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:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: b7a86f85b47098ca555b8f032bec32c813acc38ab3f3c4a1195d144d3a87aed1
|
|
4
|
+
data.tar.gz: 658e86bf9a50f4301de598982879ef511b022901f1f2841c48d6e244efb4dbd5
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
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
|
-
|
|
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?
|
data/lib/forest_liana/version.rb
CHANGED
|
@@ -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.
|
|
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-
|
|
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
|