slim_form_object 1.0.4 → 1.0.5

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
  SHA1:
3
- metadata.gz: 8da8a71ee07485bfcf11b18dfedcfcd0703278ac
4
- data.tar.gz: bd5ed87f1494dbd888610909963f98f9738d38f5
3
+ metadata.gz: 4ae4155e3a53b282d248dd3328278d852ace1e28
4
+ data.tar.gz: a34baa8a40b0604775ce5db1f35b5c49b796c464
5
5
  SHA512:
6
- metadata.gz: 5b7157593f83036e3b0bed6c2365911afbfaa4f8f43ab99f1bdd2d5120e2f6e762c9f0b513c89a9d428256730e9fcc838ac4dde2905bd38bd97d024c50596b02
7
- data.tar.gz: fc0ca44c0709fa9d9634a2835c60e9aace36792fb7ce5c14e9667530fdbeb575811118a72882a4662c1ddb358c9b7a5057227280a13fe5d986ac0dd1e3074ef9
6
+ metadata.gz: eb8a312ebbc9fec0ea66c14d5c0e17f21a176c0eda0e7f7369d2d055939043a859acfc742b610504235887b244a6f0d9f18b7b806e358b44b66ed3db554acb52
7
+ data.tar.gz: 55a50c5f168ef4fec9015f8112d88acbffc9d45174f7311e9c63e25b97613bfc2a0361fb598f8be45a2eef62867f6bb50dc4bb7169175f2cb27857d22f684db2
@@ -5,11 +5,11 @@ module SlimFormObject
5
5
  attr_reader :form_object, :params, :array_all_objects_for_save, :not_save_this_model, :result_hash_updated_objects
6
6
 
7
7
  def initialize(form_object)
8
- @form_object = form_object
9
- @params = form_object.params
10
- @array_all_objects_for_save = form_object.array_all_objects_for_save
11
- @not_save_this_model = form_object.not_save_this_model
12
- @result_hash_updated_objects = {objects: [], nested_objects: {}}
8
+ @form_object = form_object
9
+ @params = form_object.params
10
+ @array_all_objects_for_save = form_object.array_all_objects_for_save
11
+ @not_save_this_model = form_object.not_save_this_model
12
+ @result_hash_updated_objects = {objects: [], nested_objects: {}}
13
13
  end
14
14
 
15
15
  def apply_parameters
@@ -20,6 +20,8 @@ module SlimFormObject
20
20
  result_hash_updated_objects
21
21
  end
22
22
 
23
+ private
24
+
23
25
  def filter_not_save_objects
24
26
  array_all_objects_for_save.reject do |object|
25
27
  not_save_this_model.include?(object.class)
@@ -36,7 +38,6 @@ module SlimFormObject
36
38
  result_hash_updated_objects[:objects] = array_all_objects_for_save
37
39
  end
38
40
 
39
-
40
41
  def hash_params_of_object(object)
41
42
  if force_permit(params[snake(object.class.to_s)])
42
43
  params[snake(object.class.to_s)]
@@ -76,7 +77,6 @@ module SlimFormObject
76
77
  end
77
78
  end
78
79
  end
79
-
80
80
  end
81
81
  end
82
82
 
@@ -52,15 +52,11 @@ module ActionView
52
52
  end
53
53
 
54
54
  def sfo_get_tag_name(object_name, method, multiple)
55
+ model_name, attr_name = apply_expression_text(method, sfo_single_attr_regexp)
56
+
55
57
  if sfo_multiple_attr?(object_name)
56
- method.to_s[sfo_single_attr_regexp]
57
- model_name = $1
58
- attr_name = $2
59
58
  tag_name = "#{object_name}[#{model_name}][][#{attr_name}]#{"[]" if multiple}"
60
59
  elsif sfo_single_attr?(method)
61
- method.to_s[sfo_single_attr_regexp]
62
- model_name = $1
63
- attr_name = $2
64
60
  tag_name = "#{object_name}[#{model_name}][#{attr_name}]#{"[]" if multiple}"
65
61
  end
66
62
 
@@ -69,31 +65,41 @@ module ActionView
69
65
 
70
66
  def sfo_get_method_name(method)
71
67
  if sfo_single_attr?(method)
72
- method.to_s[sfo_single_attr_regexp]
73
- model_name = $1
74
- attr_name = $2
75
- method = "#{model_name}_#{attr_name}"
68
+ model_name, attr_name = apply_expression_text(method, sfo_single_attr_regexp)
69
+ method = "#{model_name}_#{attr_name}"
76
70
  end
77
71
 
78
72
  method
79
73
  end
80
74
 
81
75
  def sfo_get_date_tag_name(prefix, tag_name)
76
+ model_name, attr_name, date_type = apply_expression_date(tag_name, sfo_date_attr_regexp)
77
+
82
78
  if sfo_multiple_attr?(prefix)
83
- tag_name[sfo_date_attr_regexp]
84
- model_name = $1
85
- attr_name = $2
86
- date_type = $3
87
79
  tag_name = "#{prefix}[#{model_name}][][#{attr_name}#{date_type}]"
88
- elsif tag_name[sfo_date_attr_regexp]
89
- model_name = $1
90
- attr_name = $2
91
- date_type = $3
80
+ else
92
81
  tag_name = "#{prefix}[#{model_name}][#{attr_name}#{date_type}]"
93
82
  end
94
83
 
95
84
  tag_name
96
85
  end
86
+
87
+ def apply_expression_date(string, exp)
88
+ string[exp]
89
+ model_name = $1
90
+ attr_name = $2
91
+ date_type = $3
92
+
93
+ [model_name, attr_name, date_type]
94
+ end
95
+
96
+ def apply_expression_text(string, exp)
97
+ string[exp]
98
+ model_name = $1
99
+ attr_name = $2
100
+
101
+ [model_name, attr_name]
102
+ end
97
103
  end
98
104
 
99
105
  class DateTimeSelector
@@ -9,7 +9,6 @@ module SlimFormObject
9
9
  attr_accessor :params, :array_objects_for_save, :hash_objects_for_save
10
10
 
11
11
  class << self
12
-
13
12
  def set_model_name(name)
14
13
  define_method(:model_name) { ActiveModel::Name.new(self, nil, name) }
15
14
  end
@@ -85,7 +84,11 @@ module SlimFormObject
85
84
  Validator.new(self).validate_form_object
86
85
  end
87
86
 
88
- # POMOGAY
87
+ def array_all_objects_for_save
88
+ array_objects_for_save ||= get_or_add_default_objects
89
+ end
90
+
91
+ private
89
92
 
90
93
  def apply
91
94
  assign = Assign.new(self)
@@ -97,16 +100,6 @@ module SlimFormObject
97
100
  define_singleton_method(:force_save_if_all_attr_is_nil) { [] } unless respond_to?(:force_save_if_all_attr_is_nil)
98
101
  end
99
102
 
100
- def set_errors(object_errors)
101
- object_errors.each do |attribute, message|
102
- errors.add(attribute, message)
103
- end
104
- end
105
-
106
- def array_all_objects_for_save
107
- array_objects_for_save ||= get_or_add_default_objects
108
- end
109
-
110
103
  end
111
104
  end
112
105
 
@@ -5,10 +5,10 @@ module SlimFormObject
5
5
  attr_reader :form_object, :params, :validator, :hash_objects_for_save
6
6
 
7
7
  def initialize(form_object)
8
- @form_object = form_object
9
- @params = form_object.params
10
- @hash_objects_for_save = form_object.hash_objects_for_save
11
- @validator = Validator.new(form_object)
8
+ @form_object = form_object
9
+ @params = form_object.params
10
+ @hash_objects_for_save = form_object.hash_objects_for_save
11
+ @validator = Validator.new(form_object)
12
12
  end
13
13
 
14
14
  def save
@@ -19,12 +19,14 @@ module SlimFormObject
19
19
  end
20
20
  return true
21
21
  end
22
+
22
23
  false
23
24
  rescue
24
- # p "ERROR"
25
25
  false
26
26
  end
27
27
 
28
+ private
29
+
28
30
  def save_main_objects
29
31
  objects = Array.new(hash_objects_for_save[:objects])
30
32
  while object_1 = objects.delete( objects[0] )
@@ -5,9 +5,9 @@ module SlimFormObject
5
5
  attr_reader :form_object, :params, :hash_objects_for_save
6
6
 
7
7
  def initialize(form_object)
8
- @form_object = form_object
9
- @params = form_object.params
10
- @hash_objects_for_save = form_object.hash_objects_for_save
8
+ @form_object = form_object
9
+ @params = form_object.params
10
+ @hash_objects_for_save = form_object.hash_objects_for_save
11
11
  end
12
12
 
13
13
  def validate_form_object
@@ -15,30 +15,26 @@ module SlimFormObject
15
15
 
16
16
  hash_objects_for_save[:objects].each do |object|
17
17
  next if all_attributes_is_nil?(object)
18
- form_object.set_errors( object.errors ) unless object.valid?
18
+ set_errors( snake(object.class), object.errors ) unless object.valid?
19
19
  end
20
20
 
21
21
  hash_objects_for_save[:nested_objects].keys.each do |snake_model_name|
22
22
  hash_objects_for_save[:nested_objects][snake_model_name].each do |object|
23
- form_object.set_errors( object.errors ) unless object.valid?
23
+ set_errors( snake(object.class), object.errors ) unless object.valid?
24
24
  end
25
25
  end
26
26
  end
27
27
 
28
- def filter_nil_objects
29
- hash_objects_for_save[:objects].reject! do |object|
30
- all_attributes_is_nil?(object)
31
- end
32
- end
33
-
34
28
  def valid_model_for_save?(object)
35
- # ( (attributes_is_present?(object) and object.id != nil) or (object.id == nil and !all_attributes_is_empty?(object)) )
36
29
  true
37
30
  end
38
31
 
39
- def both_model_attributes_exist?(object_1, object_2)
40
- # valid_model_for_save?(object_1) and valid_model_for_save?(object_2)
41
- !(all_attributes_is_nil?(object_1) and all_attributes_is_nil?(object_2))
32
+ private
33
+
34
+ def filter_nil_objects
35
+ hash_objects_for_save[:objects].reject! do |object|
36
+ all_attributes_is_nil?(object)
37
+ end
42
38
  end
43
39
 
44
40
  def all_attributes_is_nil?(object)
@@ -48,6 +44,12 @@ module SlimFormObject
48
44
  true
49
45
  end
50
46
 
47
+ def set_errors(object_name, object_errors)
48
+ object_errors.each do |attribute, message|
49
+ form_object.errors.add(object_name, { attribute => message})
50
+ end
51
+ end
52
+
51
53
  end
52
54
  end
53
55
 
@@ -1,3 +1,3 @@
1
1
  module SlimFormObject
2
- VERSION = "1.0.4"
2
+ VERSION = "1.0.5"
3
3
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: slim_form_object
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.4
4
+ version: 1.0.5
5
5
  platform: ruby
6
6
  authors:
7
7
  - woodcrust