slim_form_object 1.0.7 → 1.0.8
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/lib/slim_form_object/assign.rb +0 -8
- data/lib/slim_form_object/processing.rb +23 -3
- data/lib/slim_form_object/saver.rb +4 -0
- data/lib/slim_form_object/version.rb +1 -1
- metadata +1 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 7efb3cc1fcf933252927331cc874dcda2b0624f9
|
4
|
+
data.tar.gz: d2c0ba86d219f88539bde7f6544e85c8e0d8b8d0
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 91ba6f3a12ff713405f879cf03eaa7a82351965599b675b670d9cd266c15e0a9b07ab44c68e25fdd48720ab7d9338b334889368710537c6fc30e76aa12698614
|
7
|
+
data.tar.gz: 49ec93ce2e22bc873881266f5e6fd6019b1ab36f6d2505016753c46fe49532fdf3a068164e9fa52ee249817b381fdb0ef4ff28c5e873c721f8c2130c112c5737
|
@@ -8,12 +8,10 @@ module SlimFormObject
|
|
8
8
|
@form_object = form_object
|
9
9
|
@params = form_object.params
|
10
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
11
|
@result_hash_updated_objects = {objects: [], nested_objects: {}}
|
13
12
|
end
|
14
13
|
|
15
14
|
def apply_parameters
|
16
|
-
# filter_not_save_objects
|
17
15
|
update_objects_attributes
|
18
16
|
make_nested_objects
|
19
17
|
|
@@ -22,12 +20,6 @@ module SlimFormObject
|
|
22
20
|
|
23
21
|
private
|
24
22
|
|
25
|
-
# def filter_not_save_objects
|
26
|
-
# array_all_objects_for_save.reject do |object|
|
27
|
-
# not_save_this_model.include?(object.class)
|
28
|
-
# end
|
29
|
-
# end
|
30
|
-
|
31
23
|
# STANDART OBJECTS
|
32
24
|
|
33
25
|
def update_objects_attributes
|
@@ -43,6 +43,24 @@ module SlimFormObject
|
|
43
43
|
end
|
44
44
|
end
|
45
45
|
end
|
46
|
+
|
47
|
+
# CALLBACKS
|
48
|
+
def before_save_form(&block)
|
49
|
+
if block_given?
|
50
|
+
self.instance_eval do
|
51
|
+
define_method(:before_save_block) { block }
|
52
|
+
end
|
53
|
+
end
|
54
|
+
end
|
55
|
+
|
56
|
+
def after_save_form(&block)
|
57
|
+
if block_given?
|
58
|
+
self.instance_eval do
|
59
|
+
define_method(:after_save_block) { block }
|
60
|
+
end
|
61
|
+
end
|
62
|
+
end
|
63
|
+
# END CALLBACKS
|
46
64
|
end
|
47
65
|
|
48
66
|
def method_missing(name, *args, &block)
|
@@ -57,10 +75,10 @@ module SlimFormObject
|
|
57
75
|
self.params = params
|
58
76
|
get_or_add_default_objects
|
59
77
|
end
|
60
|
-
# INIT
|
78
|
+
# END INIT
|
61
79
|
|
62
80
|
def apply_parameters
|
63
|
-
|
81
|
+
default_settings
|
64
82
|
apply
|
65
83
|
self
|
66
84
|
end
|
@@ -95,8 +113,10 @@ module SlimFormObject
|
|
95
113
|
end
|
96
114
|
end
|
97
115
|
|
98
|
-
def
|
116
|
+
def default_settings
|
99
117
|
define_singleton_method(:array_models_which_not_save_if_empty) { [] } unless respond_to?(:array_models_which_not_save_if_empty)
|
118
|
+
define_singleton_method(:after_save_block) { Proc.new {} } unless respond_to?(:after_save_block)
|
119
|
+
define_singleton_method(:before_save_block) { Proc.new {} } unless respond_to?(:before_save_block)
|
100
120
|
end
|
101
121
|
|
102
122
|
end
|
@@ -14,8 +14,10 @@ module SlimFormObject
|
|
14
14
|
def save
|
15
15
|
if form_object.valid?
|
16
16
|
ActiveRecord::Base.transaction do
|
17
|
+
form_object.before_save_block.call(form_object)
|
17
18
|
save_main_objects
|
18
19
|
save_nested_objects
|
20
|
+
form_object.after_save_block.call(form_object)
|
19
21
|
end
|
20
22
|
return true
|
21
23
|
end
|
@@ -44,6 +46,8 @@ module SlimFormObject
|
|
44
46
|
end
|
45
47
|
end
|
46
48
|
|
49
|
+
|
50
|
+
|
47
51
|
def save_objects(object_1, object_2)
|
48
52
|
object_for_save = to_bind_models(object_1, object_2)
|
49
53
|
save_object(object_for_save)
|