tramway-core 1.11.2 → 1.12.1
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/app/decorators/tramway/core/application_decorator.rb +5 -6
- data/app/forms/tramway/core/application_form.rb +4 -0
- data/app/forms/tramway/core/extendable_form.rb +19 -1
- data/app/views/tramway/core/shared/_input_extended.html.haml +3 -0
- data/lib/tramway/core.rb +1 -0
- data/lib/tramway/core/engine.rb +0 -2
- data/lib/tramway/core/version.rb +1 -1
- data/lib/validators/presence_validator.rb +8 -0
- metadata +28 -28
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 16172a47127987a0492d51f269ccd76ab319bf8323636ba20f3ac36745fb2007
|
4
|
+
data.tar.gz: ac86409a6b1fbc1462f07a5a5b999ff81755a9af28c8b3e834a786983915f006
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 6e45054851f49dbc7c1aff4c267c5eb0a6c95a95569808649313991699160bf90e93f96293c69658ad5b23a60b5b188ab585eb1da8ec05e902a689544e3f82d6
|
7
|
+
data.tar.gz: 58786a322921c254d038f39dfc3d4b8338f78f77bb7a8d6c6826b916c8b6957530a034229ad42dfc93165f0f1ffb5d9e9c779a86a9510b54bdd7bb20ab25ae77
|
@@ -62,14 +62,13 @@ class Tramway::Core::ApplicationDecorator
|
|
62
62
|
association.options[:class_name]
|
63
63
|
end
|
64
64
|
decorator_class_name = decorator || "#{class_name.to_s.singularize}Decorator".constantize
|
65
|
-
|
66
|
-
|
67
|
-
object.send(association_name).active.map do |association_object|
|
65
|
+
if association.class == ActiveRecord::Reflection::HasManyReflection
|
66
|
+
return object.send(association_name).active.map do |association_object|
|
68
67
|
decorator_class_name.decorate association_object
|
69
68
|
end
|
70
69
|
end
|
71
|
-
if association.
|
72
|
-
decorator_class_name.decorate object.send association_name
|
70
|
+
if association.class == ActiveRecord::Reflection::BelongsToReflection
|
71
|
+
return decorator_class_name.decorate object.send association_name
|
73
72
|
end
|
74
73
|
end
|
75
74
|
end
|
@@ -120,7 +119,7 @@ class Tramway::Core::ApplicationDecorator
|
|
120
119
|
elsif value.class.in? [ ActiveSupport::TimeWithZone, DateTime, Time ]
|
121
120
|
hash.merge! attribute[0] => datetime_view(attribute[1])
|
122
121
|
elsif value.class.superclass == ApplicationUploader
|
123
|
-
hash.merge! attribute[0] => image_view(attribute[
|
122
|
+
hash.merge! attribute[0] => image_view(object.send(attribute[0]))
|
124
123
|
elsif value.is_a? Enumerize::Value
|
125
124
|
hash.merge! attribute[0] => enumerize_view(value)
|
126
125
|
else
|
@@ -10,6 +10,12 @@ class Tramway::Core::ExtendableForm
|
|
10
10
|
define_method 'submit' do |params|
|
11
11
|
model.values ||= {}
|
12
12
|
extended_params = params.except(*simple_properties.keys)
|
13
|
+
params.each do |key, value|
|
14
|
+
method_name = "#{key}="
|
15
|
+
if respond_to?(method_name)
|
16
|
+
send method_name, value
|
17
|
+
end
|
18
|
+
end
|
13
19
|
model.values = extended_params.permit!.to_h.reduce(model.values) do |hash, pair|
|
14
20
|
hash.merge! pair[0] => pair[1]
|
15
21
|
end
|
@@ -25,7 +31,7 @@ class Tramway::Core::ExtendableForm
|
|
25
31
|
end
|
26
32
|
more_properties.reduce(hash) do |h, property|
|
27
33
|
h.merge! property[0] => {
|
28
|
-
extended_form_property: property[1]
|
34
|
+
extended_form_property: property[1][:object]
|
29
35
|
}
|
30
36
|
end
|
31
37
|
end
|
@@ -34,6 +40,18 @@ class Tramway::Core::ExtendableForm
|
|
34
40
|
define_method property[0] do
|
35
41
|
model.values[property[0]] if model.values
|
36
42
|
end
|
43
|
+
|
44
|
+
if property[1][:validates].present?
|
45
|
+
define_method "#{property[0]}=" do |value|
|
46
|
+
property[1][:validates].each do |pair|
|
47
|
+
validator_object = "#{pair[0].camelize}Validator".constantize.new({ attributes: :not_blank })
|
48
|
+
if pair[1] == 'true' && !validator_object.send(:valid?, value)
|
49
|
+
model.errors.add property[0],
|
50
|
+
I18n.t("activerecord.errors.models.#{model.class.name.underscore}.attributes.#{property[0]}.#{pair[0]}", { value: value })
|
51
|
+
end
|
52
|
+
end
|
53
|
+
end
|
54
|
+
end
|
37
55
|
end
|
38
56
|
end)
|
39
57
|
end
|
@@ -17,3 +17,6 @@
|
|
17
17
|
= f.input field.title.to_sym, as: :select, input_html: { class: class_name, id: "#{class_name}_#{field.title}", name: "#{class_name}[#{field.title}]" }, selected: value
|
18
18
|
- else
|
19
19
|
= f.input field.title.to_sym, as: :select, input_html: { class: class_name, id: "#{class_name}_#{field.title}", name: "#{class_name}[#{field.title}]" }
|
20
|
+
- if params[:errors].present? && params[:errors][field.title]&.first
|
21
|
+
.alert.alert-danger
|
22
|
+
= params[:errors][field.title]&.first
|
data/lib/tramway/core.rb
CHANGED
data/lib/tramway/core/engine.rb
CHANGED
data/lib/tramway/core/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: tramway-core
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.
|
4
|
+
version: 1.12.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Pavel Kalashnikov
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2019-07
|
11
|
+
date: 2019-09-07 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: reform-rails
|
@@ -48,22 +48,22 @@ dependencies:
|
|
48
48
|
name: simple_form
|
49
49
|
requirement: !ruby/object:Gem::Requirement
|
50
50
|
requirements:
|
51
|
-
- - "~>"
|
52
|
-
- !ruby/object:Gem::Version
|
53
|
-
version: '3.5'
|
54
51
|
- - ">="
|
55
52
|
- !ruby/object:Gem::Version
|
56
53
|
version: 3.5.0
|
54
|
+
- - "~>"
|
55
|
+
- !ruby/object:Gem::Version
|
56
|
+
version: '3.5'
|
57
57
|
type: :runtime
|
58
58
|
prerelease: false
|
59
59
|
version_requirements: !ruby/object:Gem::Requirement
|
60
60
|
requirements:
|
61
|
-
- - "~>"
|
62
|
-
- !ruby/object:Gem::Version
|
63
|
-
version: '3.5'
|
64
61
|
- - ">="
|
65
62
|
- !ruby/object:Gem::Version
|
66
63
|
version: 3.5.0
|
64
|
+
- - "~>"
|
65
|
+
- !ruby/object:Gem::Version
|
66
|
+
version: '3.5'
|
67
67
|
- !ruby/object:Gem::Dependency
|
68
68
|
name: sass-rails
|
69
69
|
requirement: !ruby/object:Gem::Requirement
|
@@ -116,42 +116,42 @@ dependencies:
|
|
116
116
|
name: mini_magick
|
117
117
|
requirement: !ruby/object:Gem::Requirement
|
118
118
|
requirements:
|
119
|
-
- - "~>"
|
120
|
-
- !ruby/object:Gem::Version
|
121
|
-
version: '4.8'
|
122
119
|
- - ">="
|
123
120
|
- !ruby/object:Gem::Version
|
124
121
|
version: 4.8.0
|
122
|
+
- - "~>"
|
123
|
+
- !ruby/object:Gem::Version
|
124
|
+
version: '4.8'
|
125
125
|
type: :runtime
|
126
126
|
prerelease: false
|
127
127
|
version_requirements: !ruby/object:Gem::Requirement
|
128
128
|
requirements:
|
129
|
-
- - "~>"
|
130
|
-
- !ruby/object:Gem::Version
|
131
|
-
version: '4.8'
|
132
129
|
- - ">="
|
133
130
|
- !ruby/object:Gem::Version
|
134
131
|
version: 4.8.0
|
132
|
+
- - "~>"
|
133
|
+
- !ruby/object:Gem::Version
|
134
|
+
version: '4.8'
|
135
135
|
- !ruby/object:Gem::Dependency
|
136
136
|
name: rmagick
|
137
137
|
requirement: !ruby/object:Gem::Requirement
|
138
138
|
requirements:
|
139
|
-
- - "~>"
|
140
|
-
- !ruby/object:Gem::Version
|
141
|
-
version: '2.16'
|
142
139
|
- - ">="
|
143
140
|
- !ruby/object:Gem::Version
|
144
141
|
version: 2.16.0
|
142
|
+
- - "~>"
|
143
|
+
- !ruby/object:Gem::Version
|
144
|
+
version: '2.16'
|
145
145
|
type: :runtime
|
146
146
|
prerelease: false
|
147
147
|
version_requirements: !ruby/object:Gem::Requirement
|
148
148
|
requirements:
|
149
|
-
- - "~>"
|
150
|
-
- !ruby/object:Gem::Version
|
151
|
-
version: '2.16'
|
152
149
|
- - ">="
|
153
150
|
- !ruby/object:Gem::Version
|
154
151
|
version: 2.16.0
|
152
|
+
- - "~>"
|
153
|
+
- !ruby/object:Gem::Version
|
154
|
+
version: '2.16'
|
155
155
|
- !ruby/object:Gem::Dependency
|
156
156
|
name: loofah
|
157
157
|
requirement: !ruby/object:Gem::Requirement
|
@@ -176,22 +176,22 @@ dependencies:
|
|
176
176
|
name: haml-rails
|
177
177
|
requirement: !ruby/object:Gem::Requirement
|
178
178
|
requirements:
|
179
|
-
- - "~>"
|
180
|
-
- !ruby/object:Gem::Version
|
181
|
-
version: '1.0'
|
182
179
|
- - ">="
|
183
180
|
- !ruby/object:Gem::Version
|
184
181
|
version: 1.0.0
|
182
|
+
- - "~>"
|
183
|
+
- !ruby/object:Gem::Version
|
184
|
+
version: '1.0'
|
185
185
|
type: :runtime
|
186
186
|
prerelease: false
|
187
187
|
version_requirements: !ruby/object:Gem::Requirement
|
188
188
|
requirements:
|
189
|
-
- - "~>"
|
190
|
-
- !ruby/object:Gem::Version
|
191
|
-
version: '1.0'
|
192
189
|
- - ">="
|
193
190
|
- !ruby/object:Gem::Version
|
194
191
|
version: 1.0.0
|
192
|
+
- - "~>"
|
193
|
+
- !ruby/object:Gem::Version
|
194
|
+
version: '1.0'
|
195
195
|
- !ruby/object:Gem::Dependency
|
196
196
|
name: font_awesome5_rails
|
197
197
|
requirement: !ruby/object:Gem::Requirement
|
@@ -376,6 +376,7 @@ files:
|
|
376
376
|
- lib/tramway/core/version.rb
|
377
377
|
- lib/tramway/error.rb
|
378
378
|
- lib/tramway/helpers/class_name_helpers.rb
|
379
|
+
- lib/validators/presence_validator.rb
|
379
380
|
homepage: https://github.com/kalashnikovisme/tramway-core
|
380
381
|
licenses:
|
381
382
|
- MIT
|
@@ -395,8 +396,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
395
396
|
- !ruby/object:Gem::Version
|
396
397
|
version: '0'
|
397
398
|
requirements: []
|
398
|
-
|
399
|
-
rubygems_version: 2.7.6
|
399
|
+
rubygems_version: 3.0.3
|
400
400
|
signing_key:
|
401
401
|
specification_version: 4
|
402
402
|
summary: Core for all Tramway Rails Engines
|