forest_liana 9.5.5 → 9.5.6
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 +4 -4
- data/lib/forest_liana/collection.rb +19 -3
- data/lib/forest_liana/version.rb +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 5326dc27652421070200c8ad7f86863a59b6ee54750b31902e539d7891ad4825
|
4
|
+
data.tar.gz: 719a0f521b807b93eb425f51c8397e264b8db3ae2f184a76842f2c5f51865971
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 5d409eb403db0eba20edd180722ccd14a9eb00019cebc6b9cb04bd62f0da1ecb046ac3a351155372be316d8f08d405c4b8d393a7c1aad506ebf5d6fd2bdea502
|
7
|
+
data.tar.gz: 000bd627330daa5a934477ccb93138b94d3d6672011024c195eef9a7d40f144505010f90c3fa1ba9d09818272222b8155e39bf2f11adcee660f2f76c33dd112a
|
@@ -24,11 +24,15 @@ module ForestLiana::Collection
|
|
24
24
|
end
|
25
25
|
|
26
26
|
def action(name, opts = {})
|
27
|
+
return if model.actions.find { |action| action.name == name }
|
28
|
+
|
27
29
|
opts[:name] = name
|
28
30
|
model.actions << ForestLiana::Model::Action.new(opts)
|
29
31
|
end
|
30
32
|
|
31
33
|
def segment(name, opts = {}, &block)
|
34
|
+
return if model.segments.find { |segment| segment.name == name }
|
35
|
+
|
32
36
|
opts[:name] = name
|
33
37
|
model.segments << ForestLiana::Model::Segment.new(opts, &block)
|
34
38
|
end
|
@@ -74,12 +78,14 @@ module ForestLiana::Collection
|
|
74
78
|
opts[:validations] = [] unless opts.has_key?(:validations)
|
75
79
|
opts[:is_virtual] = true unless opts.has_key?(:polymorphic_key) && opts[:polymorphic_key]
|
76
80
|
|
77
|
-
|
81
|
+
field = opts.merge({
|
78
82
|
field: name,
|
79
83
|
is_filterable: !!opts[:is_filterable],
|
80
84
|
is_sortable: !!opts[:is_sortable],
|
81
85
|
})
|
82
86
|
|
87
|
+
add_field(field)
|
88
|
+
|
83
89
|
define_method(name) { self.data[name] } if smart_collection?
|
84
90
|
|
85
91
|
if serializer_name && ForestLiana::UserSpace.const_defined?(
|
@@ -108,13 +114,15 @@ module ForestLiana::Collection
|
|
108
114
|
end
|
109
115
|
|
110
116
|
def has_many(name, opts, &block)
|
111
|
-
|
117
|
+
field = opts.merge({
|
112
118
|
field: name,
|
113
119
|
is_virtual: true,
|
114
120
|
is_searchable: false,
|
115
121
|
type: ['String']
|
116
122
|
})
|
117
123
|
|
124
|
+
add_field(field)
|
125
|
+
|
118
126
|
define_method(name) { self.data[name] } if smart_collection?
|
119
127
|
|
120
128
|
if serializer_name && ForestLiana::UserSpace.const_defined?(
|
@@ -126,13 +134,15 @@ module ForestLiana::Collection
|
|
126
134
|
end
|
127
135
|
|
128
136
|
def belongs_to(name, opts, &block)
|
129
|
-
|
137
|
+
field = opts.merge({
|
130
138
|
field: name,
|
131
139
|
is_virtual: true,
|
132
140
|
is_searchable: false,
|
133
141
|
type: 'String'
|
134
142
|
})
|
135
143
|
|
144
|
+
add_field(field)
|
145
|
+
|
136
146
|
define_method(name) { self.data[name] } if smart_collection?
|
137
147
|
|
138
148
|
if serializer_name && ForestLiana::UserSpace.const_defined?(
|
@@ -145,6 +155,12 @@ module ForestLiana::Collection
|
|
145
155
|
|
146
156
|
private
|
147
157
|
|
158
|
+
def add_field(field)
|
159
|
+
return if model.fields.find { |field| field[:field] == name }
|
160
|
+
|
161
|
+
model.fields << field
|
162
|
+
end
|
163
|
+
|
148
164
|
def find_name(collection_name)
|
149
165
|
# TODO: Remove once lianas prior to 2.0.0 are not supported anymore.
|
150
166
|
model = ForestLiana.models.find { |collection| collection.try(:table_name) == collection_name.to_s }
|
data/lib/forest_liana/version.rb
CHANGED
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.5.
|
4
|
+
version: 9.5.6
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Sandro Munda
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2024-12-
|
11
|
+
date: 2024-12-10 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rails
|