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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: eeac1ff8281b7c5e6dd665fbe2916cd3f2bc917d90a203ac361729c305016711
4
- data.tar.gz: ef749f395fb09fccba8acc35a842a1f390ae62274d345c108966aa1ea1f024b6
3
+ metadata.gz: 938b9d2f7ef998e7ffd0c45cdd9c3b0062a6b65336ae9f8b8c7d587cc984e973
4
+ data.tar.gz: ef56b0928a74d9754e2a88376d66e403e2bac10270fdf89c58a1244edb836b61
5
5
  SHA512:
6
- metadata.gz: 86ce9b156c732ecdab742176ffe56af75c2fbc80f3d84bad3c50ac6c30491d0ff190118b6a64b58f732f17f673ffb060c9eff70bb7cd28589bd2be0cd082bf3b
7
- data.tar.gz: ed9043ffbe86655297870364278f43e54680bdfbc34f860827189e0f365c8268b032ec6936dcefe3cbf2491dc56d66bf672700c08d9f565c58e5d1a4f4f6e43f
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 < ::Reform::Form
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
- object ||= self.class.model_class.new
13
- super(object).tap do
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
@@ -0,0 +1,7 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Tramway::Core::ApplicationForms::AssociationClassHelpers
4
+ def associations(*properties)
5
+ properties.each { |property| association property }
6
+ end
7
+ 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
- super class_name.find value
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
- super association_class.find value.split('_')[-1]
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
@@ -8,4 +8,8 @@ module Tramway::Core::ApplicationForms::ObjectHelpers
8
8
  def persisted?
9
9
  model.id.nil?
10
10
  end
11
+
12
+ def model
13
+ @object
14
+ end
11
15
  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].each do |pair|
13
- make_validates property[0], pair, value
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}/#{model.id}"
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('images/default_photo.png')
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.include? version
56
+ model.class.photo_versions&.include? version
57
57
  end
58
58
  end
@@ -5,7 +5,6 @@ require 'tramway/collection'
5
5
  require 'tramway/collections/helper'
6
6
  require 'tramway/error'
7
7
  require 'font_awesome5_rails'
8
- require 'reform'
9
8
  require 'pg_search'
10
9
  require 'validators/presence_validator'
11
10
 
@@ -2,6 +2,6 @@
2
2
 
3
3
  module Tramway
4
4
  module Core
5
- VERSION = '1.17.8'
5
+ VERSION = '1.18.0.2'
6
6
  end
7
7
  end
@@ -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 from %{object_class}"
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.17.8
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-22 00:00:00.000000000 Z
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