tramway-core 1.17.8 → 1.18.0.2
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/forms/tramway/core/application_form.rb +18 -24
- data/app/forms/tramway/core/application_forms/association_class_helpers.rb +7 -0
- data/app/forms/tramway/core/application_forms/association_object_helpers.rb +2 -2
- data/app/forms/tramway/core/application_forms/object_helpers.rb +4 -0
- data/app/forms/tramway/core/application_forms/submit_helper.rb +24 -0
- data/app/forms/tramway/core/extendable_forms_helpers/class_builder.rb +1 -1
- data/app/forms/tramway/core/extendable_forms_helpers/more_properties_helper.rb +6 -2
- data/app/uploaders/application_uploader.rb +12 -1
- data/app/uploaders/photo_uploader.rb +2 -2
- data/lib/tramway/core.rb +0 -1
- data/lib/tramway/core/version.rb +1 -1
- data/lib/yaml/errors.yml +1 -1
- metadata +4 -30
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 938b9d2f7ef998e7ffd0c45cdd9c3b0062a6b65336ae9f8b8c7d587cc984e973
|
4
|
+
data.tar.gz: ef56b0928a74d9754e2a88376d66e403e2bac10270fdf89c58a1244edb836b61
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 66b553bb6e941340b3e5929520e36da8e42e8e006493dd29adf73a3cc826ec5c363cfb804646159fab033959d3435ab6f0ef5f3fe2bca9ed2fc0b0871d38e9d8
|
7
|
+
data.tar.gz: d88d5f0042e1b8ce1ef0e2b8a1b2a3d688492bade95a727a00f2b57f8a4a6ef0d3ea74389601b69416431d4c68d2cafbbc82745d7f85e12486776adf1b83bb7b
|
@@ -1,16 +1,17 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
|
-
class Tramway::Core::ApplicationForm
|
3
|
+
class Tramway::Core::ApplicationForm
|
4
4
|
include Tramway::Core::ApplicationForms::AssociationObjectHelpers
|
5
5
|
include Tramway::Core::ApplicationForms::ConstantObjectActions
|
6
6
|
include Tramway::Core::ApplicationForms::PropertiesObjectHelper
|
7
7
|
include Tramway::Core::ApplicationForms::ObjectHelpers
|
8
|
+
include Tramway::Core::ApplicationForms::SubmitHelper
|
8
9
|
|
9
10
|
attr_accessor :submit_message
|
10
11
|
|
11
12
|
def initialize(object = nil)
|
12
|
-
|
13
|
-
|
13
|
+
tap do
|
14
|
+
@object = object
|
14
15
|
@@model_class = object.class
|
15
16
|
@@enumerized_attributes = object.class.try :enumerized_attributes
|
16
17
|
@@associations ||= []
|
@@ -23,14 +24,6 @@ class Tramway::Core::ApplicationForm < ::Reform::Form
|
|
23
24
|
end
|
24
25
|
end
|
25
26
|
|
26
|
-
def submit(params)
|
27
|
-
if params
|
28
|
-
validate(params) ? save : collecting_associations_errors
|
29
|
-
else
|
30
|
-
Tramway::Error.raise_error(:tramway, :core, :application_form, :submit, :params_should_not_be_nil)
|
31
|
-
end
|
32
|
-
end
|
33
|
-
|
34
27
|
def model_name
|
35
28
|
@@model_class.model_name
|
36
29
|
end
|
@@ -40,19 +33,29 @@ class Tramway::Core::ApplicationForm < ::Reform::Form
|
|
40
33
|
end
|
41
34
|
|
42
35
|
class << self
|
36
|
+
include Tramway::Core::ApplicationForms::AssociationClassHelpers
|
43
37
|
include Tramway::Core::ApplicationForms::ConstantClassActions
|
44
38
|
|
45
39
|
delegate :defined_enums, to: :model_class
|
46
40
|
|
41
|
+
def properties(*props)
|
42
|
+
props.each { |prop| property prop }
|
43
|
+
end
|
44
|
+
|
45
|
+
def property(prop)
|
46
|
+
@@properties ||= []
|
47
|
+
@@properties << prop
|
48
|
+
delegate prop, to: :model
|
49
|
+
define_method("#{prop}=") do |value|
|
50
|
+
model.send "#{prop}=", value
|
51
|
+
end
|
52
|
+
end
|
53
|
+
|
47
54
|
def association(property)
|
48
55
|
properties property
|
49
56
|
@@associations = ((defined?(@@associations) && @@associations) || []) + [property]
|
50
57
|
end
|
51
58
|
|
52
|
-
def associations(*properties)
|
53
|
-
properties.each { |property| association property }
|
54
|
-
end
|
55
|
-
|
56
59
|
def full_class_name_associations
|
57
60
|
@@associations&.reduce({}) do |hash, association|
|
58
61
|
options = @@model_class.reflect_on_all_associations(:belongs_to).select do |a|
|
@@ -113,13 +116,4 @@ class Tramway::Core::ApplicationForm < ::Reform::Form
|
|
113
116
|
model.send("#{association}=", send(association)) if errors.details[association] == [{ error: :blank }]
|
114
117
|
end
|
115
118
|
end
|
116
|
-
|
117
|
-
def save
|
118
|
-
super
|
119
|
-
rescue ArgumentError => e
|
120
|
-
Tramway::Error.raise_error :tramway, :core, :application_form, :save, :argument_error, message: e.message
|
121
|
-
rescue StandardError => e
|
122
|
-
Tramway::Error.raise_error :tramway, :core, :application_form, :save, :looks_like_you_have_method,
|
123
|
-
method_name: e.name.to_s.gsub('=', ''), model_class: @@model_class, class_name: self.class
|
124
|
-
end
|
125
119
|
end
|
@@ -7,7 +7,7 @@ module Tramway::Core::ApplicationForms::AssociationObjectHelpers
|
|
7
7
|
else
|
8
8
|
self.class.send(:define_method, "#{association}=") do |value|
|
9
9
|
model.send "#{association}_id=", value
|
10
|
-
|
10
|
+
model.send "#{association}=", class_name.find(value)
|
11
11
|
end
|
12
12
|
end
|
13
13
|
end
|
@@ -20,7 +20,7 @@ module Tramway::Core::ApplicationForms::AssociationObjectHelpers
|
|
20
20
|
Tramway::Error.raise_error :tramway, :core, :application_form, :initialize, :polymorphic_class_is_nil,
|
21
21
|
association_name: association
|
22
22
|
else
|
23
|
-
|
23
|
+
model.send "#{association}=", association_class.find(value.split('_')[-1])
|
24
24
|
send "#{association}_type=", association_class.to_s
|
25
25
|
end
|
26
26
|
end
|
@@ -0,0 +1,24 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module Tramway::Core::ApplicationForms::SubmitHelper
|
4
|
+
def submit(params)
|
5
|
+
if params
|
6
|
+
params.each { |key, value| send("#{key}=", value) }
|
7
|
+
result = save
|
8
|
+
result.tap do
|
9
|
+
collecting_associations_errors unless result
|
10
|
+
end
|
11
|
+
else
|
12
|
+
Tramway::Error.raise_error(:tramway, :core, :application_form, :submit, :params_should_not_be_nil)
|
13
|
+
end
|
14
|
+
end
|
15
|
+
|
16
|
+
def save
|
17
|
+
model.save
|
18
|
+
rescue ArgumentError => e
|
19
|
+
Tramway::Error.raise_error :tramway, :core, :application_form, :save, :argument_error, message: e.message
|
20
|
+
rescue StandardError => e
|
21
|
+
Tramway::Error.raise_error :tramway, :core, :application_form, :save, :looks_like_you_have_method,
|
22
|
+
method_name: e.name.to_s.gsub('=', ''), model_class: @@model_class, class_name: self.class
|
23
|
+
end
|
24
|
+
end
|
@@ -24,7 +24,7 @@ module Tramway::Core::ExtendableFormsHelpers::ClassBuilder
|
|
24
24
|
field = property[1][:object]
|
25
25
|
define_file_property_assignment_method property, field
|
26
26
|
else
|
27
|
-
next unless property[1][:validates].present?
|
27
|
+
#next unless property[1][:validates].present?
|
28
28
|
|
29
29
|
define_assignment_method property
|
30
30
|
end
|
@@ -9,8 +9,12 @@ module Tramway::Core::ExtendableFormsHelpers::MorePropertiesHelper
|
|
9
9
|
|
10
10
|
def define_assignment_method(property)
|
11
11
|
define_method "#{property[0]}=" do |value|
|
12
|
-
property[1][:validates].
|
13
|
-
|
12
|
+
if property[1][:validates].present?
|
13
|
+
property[1][:validates].each do |pair|
|
14
|
+
make_validates property[0], pair, value
|
15
|
+
end
|
16
|
+
else
|
17
|
+
model.values.merge property[0] => value
|
14
18
|
end
|
15
19
|
end
|
16
20
|
end
|
@@ -6,6 +6,17 @@ class ApplicationUploader < CarrierWave::Uploader::Base
|
|
6
6
|
storage :file
|
7
7
|
|
8
8
|
def store_dir
|
9
|
-
"system/uploads/#{model.class.model_name.to_s.underscore}/#{mounted_as}/#{
|
9
|
+
"system/uploads/#{model.class.model_name.to_s.underscore}/#{mounted_as}/#{id_directory}"
|
10
|
+
end
|
11
|
+
|
12
|
+
private
|
13
|
+
|
14
|
+
def id_directory
|
15
|
+
if model.respond_to?(:uuid)
|
16
|
+
model.reload unless model.uuid.present?
|
17
|
+
model.uuid
|
18
|
+
else
|
19
|
+
model.id
|
20
|
+
end
|
10
21
|
end
|
11
22
|
end
|
@@ -4,7 +4,7 @@ class PhotoUploader < ApplicationUploader
|
|
4
4
|
include ImageDefaults
|
5
5
|
|
6
6
|
def default_url
|
7
|
-
ActionController::Base.helpers.asset_path('
|
7
|
+
ActionController::Base.helpers.asset_path('mona_lisa_from_prado_square.png')
|
8
8
|
end
|
9
9
|
|
10
10
|
def url
|
@@ -53,6 +53,6 @@ class PhotoUploader < ApplicationUploader
|
|
53
53
|
end
|
54
54
|
|
55
55
|
def version_is_needed?(version)
|
56
|
-
model.class.photo_versions
|
56
|
+
model.class.photo_versions&.include? version
|
57
57
|
end
|
58
58
|
end
|
data/lib/tramway/core.rb
CHANGED
data/lib/tramway/core/version.rb
CHANGED
data/lib/yaml/errors.yml
CHANGED
@@ -35,6 +35,6 @@ tramway:
|
|
35
35
|
attributes:
|
36
36
|
method_is_reserved_word: "Method `%{attribute_name}` is reserved word. Please, create or delegate method in %{class_name} with another name."
|
37
37
|
title:
|
38
|
-
please_implement_title: "Please, implement `title` method in a %{class_name} or delegate it
|
38
|
+
please_implement_title: "Please, implement `title` method in a %{class_name} or delegate it to %{object_class}"
|
39
39
|
link:
|
40
40
|
method_link_uses_file_attribute: "Method `link` uses `file` attribute of the decorated object. If decorated object doesn't contain `file`, you shouldn't use `link` method."
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: tramway-core
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.
|
4
|
+
version: 1.18.0.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Pavel Kalashnikov
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2020-04-
|
12
|
+
date: 2020-04-25 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: audited
|
@@ -197,34 +197,6 @@ dependencies:
|
|
197
197
|
- - ">="
|
198
198
|
- !ruby/object:Gem::Version
|
199
199
|
version: '0'
|
200
|
-
- !ruby/object:Gem::Dependency
|
201
|
-
name: reform
|
202
|
-
requirement: !ruby/object:Gem::Requirement
|
203
|
-
requirements:
|
204
|
-
- - ">="
|
205
|
-
- !ruby/object:Gem::Version
|
206
|
-
version: '0'
|
207
|
-
type: :runtime
|
208
|
-
prerelease: false
|
209
|
-
version_requirements: !ruby/object:Gem::Requirement
|
210
|
-
requirements:
|
211
|
-
- - ">="
|
212
|
-
- !ruby/object:Gem::Version
|
213
|
-
version: '0'
|
214
|
-
- !ruby/object:Gem::Dependency
|
215
|
-
name: reform-rails
|
216
|
-
requirement: !ruby/object:Gem::Requirement
|
217
|
-
requirements:
|
218
|
-
- - '='
|
219
|
-
- !ruby/object:Gem::Version
|
220
|
-
version: 0.1.7
|
221
|
-
type: :runtime
|
222
|
-
prerelease: false
|
223
|
-
version_requirements: !ruby/object:Gem::Requirement
|
224
|
-
requirements:
|
225
|
-
- - '='
|
226
|
-
- !ruby/object:Gem::Version
|
227
|
-
version: 0.1.7
|
228
200
|
- !ruby/object:Gem::Dependency
|
229
201
|
name: rmagick
|
230
202
|
requirement: !ruby/object:Gem::Requirement
|
@@ -362,11 +334,13 @@ files:
|
|
362
334
|
- app/decorators/tramway/core/concerns/attributes_decorator_helper.rb
|
363
335
|
- app/decorators/tramway/core/delegating/class_helper.rb
|
364
336
|
- app/forms/tramway/core/application_form.rb
|
337
|
+
- app/forms/tramway/core/application_forms/association_class_helpers.rb
|
365
338
|
- app/forms/tramway/core/application_forms/association_object_helpers.rb
|
366
339
|
- app/forms/tramway/core/application_forms/constant_class_actions.rb
|
367
340
|
- app/forms/tramway/core/application_forms/constant_object_actions.rb
|
368
341
|
- app/forms/tramway/core/application_forms/object_helpers.rb
|
369
342
|
- app/forms/tramway/core/application_forms/properties_object_helper.rb
|
343
|
+
- app/forms/tramway/core/application_forms/submit_helper.rb
|
370
344
|
- app/forms/tramway/core/extendable_form.rb
|
371
345
|
- app/forms/tramway/core/extendable_forms_helpers/class_builder.rb
|
372
346
|
- app/forms/tramway/core/extendable_forms_helpers/ignored_properties_helper.rb
|