slim_form_object 1.0.4 → 1.0.5

Sign up to get free protection for your applications and to get access to all the features.
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