object_attorney 2.10.3 → 2.10.5

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,15 +1,15 @@
1
1
  ---
2
2
  !binary "U0hBMQ==":
3
3
  metadata.gz: !binary |-
4
- MWE3YzI4M2Q1Y2I4MDBmY2U1MTZhNDVhNGI2ZjRiYWY2M2YyY2EwNQ==
4
+ OGIzZmNlNzdmNDU4ODQzY2RmNzcxNWJjNjkyYTAzYTZiN2E3Y2ZmNg==
5
5
  data.tar.gz: !binary |-
6
- OGI4MWZjYmVlOTQ4ZGFmMGRkYThjMDgzMWExZGM1ZmNhY2VmZDViYQ==
6
+ NTk0MDJlYzNjYzE1ZDY4MWU1ZmJiZjBhMTU4NTRlZDcwNTJiMzZiZA==
7
7
  SHA512:
8
8
  metadata.gz: !binary |-
9
- Mjc5YzkzMDBkNDI1Y2Y5MGQyMmVlODhiODU3YjZjYWQyMThhZTI3MmUwNzkx
10
- ZjMwY2FkOTc1N2M3NWM1NGVhMGFmMzkwNmM5NThlYzlhNThkMWU3MjIxN2Iz
11
- OTZhN2VlNWVkOWY0Yzc4NTA0OTBhODA1ODY2NDY1NjE0M2NhZmE=
9
+ YmRlNjFmYjczMDY0ZTNhNDkxNTRhMDhjOTg5OWZlN2U4ZTYxMWEzNjAyMTBm
10
+ ZGRhYTRiMWNjZGQ1ZTkzNjk3NTgyMzU0OGMzM2I5OTFmZTBhYmUxMzZkNzM4
11
+ OTE3OTkyYjgxMTQ4ZjlhY2U4MzIxYTk5ZTkwZDFiNjZkOTFiYWI=
12
12
  data.tar.gz: !binary |-
13
- M2E3M2QxZTdkZTE3OTI5OGJmOWIxZmIyOGI1YTY5MTBhOWQ5MTFkZjc3YzJl
14
- MWYzNDkyODZkZjRjMTcwYzFlNTAzM2M4NjFiY2ExMTE2M2U3OGUxNmMzZGM5
15
- YzFiMDI5ZTdkNzY4NjNiNGUxYjU0ZGNhYTVkYzUyYjQ2MDY1NTQ=
13
+ OGE5MTQ1MTljNjQwZGY2MDEzNzFhMGU2MGU5MjQ2ODM4ZjhmOWVkMTY5MWRl
14
+ NGRiMzRiOTc1NzlkZjFhYjllNjgxNDk1OTA5NTQ0MmVlMjU1NDEwNmUzYjFm
15
+ MzEyNDg0OTU2MjVmYmNjYWYyNTk4OGEzODQ2ZTc1M2I1NDAxNWI=
@@ -35,6 +35,15 @@ module ObjectAttorney
35
35
  nested_objects_list
36
36
  end
37
37
 
38
+ def reset_nested_objects(reflection_name = nil)
39
+ self.class.reflect_on_all_associations.each do |reflection|
40
+ next if !reflection_name.nil? && reflection_name != reflection.name
41
+
42
+ self.instance_variable_set("@#{reflection.name}_attributes", {})
43
+ self.instance_variable_set("@#{reflection.name}", nil)
44
+ end
45
+ end
46
+
38
47
  protected #################### PROTECTED METHODS DOWN BELOW ######################
39
48
 
40
49
  def save_or_destroy_nested_objects(save_method, association_macro)
@@ -1,3 +1,3 @@
1
1
  module ObjectAttorney
2
- VERSION = "2.10.3"
2
+ VERSION = "2.10.5"
3
3
  end
@@ -23,7 +23,7 @@ module ObjectAttorney
23
23
 
24
24
  before_initialize(attributes)
25
25
 
26
- @represented_object = object
26
+ @represented_object ||= object
27
27
 
28
28
  assign_attributes attributes
29
29
 
@@ -2,7 +2,7 @@ require "spec_helper"
2
2
 
3
3
  describe PostForm::Presenter do
4
4
 
5
- it "1. Editing a 'Post', through one property and delegating all missing methods to the represented object", current: true do
5
+ it "1. Editing a 'Post', through one property and delegating all missing methods to the represented object" do
6
6
  params = {
7
7
  post: {
8
8
  title: 'altered title',
@@ -0,0 +1,63 @@
1
+ require "spec_helper"
2
+
3
+ describe 'Testing the #reset_nested_objects method' do
4
+
5
+ it "1. Creating 'Comments' from 'PostWithCommentForm::Base', adding another, manually and expecting the form_object to not knowing it.", current: true do
6
+ params = {
7
+ post: {
8
+ title: 'new title',
9
+ comments_attributes: {
10
+ "0" => { body: "body1" },
11
+ "1" => { body: "1" }
12
+ }
13
+ }
14
+ }
15
+
16
+ post_form = PostWithCommentForm::Base.new(params[:post])
17
+
18
+ post_form.save.should == true
19
+
20
+ Post.all.count.should == 1
21
+ Comment.all.count.should == 2
22
+
23
+ post_form.comments.length.should == 2
24
+
25
+ post = Post.first
26
+ post.comments.create(body: 'new_comment')
27
+
28
+ post_form.post.reload
29
+ post_form.post.comments.length.should == 3
30
+ post_form.comments.length.should == 2
31
+ end
32
+
33
+ it "1. Creating 'Comments' from 'PostWithCommentForm::Base', adding another, manually and expecting the form_object to know about it.", current: true do
34
+ params = {
35
+ post: {
36
+ title: 'new title',
37
+ comments_attributes: {
38
+ "0" => { body: "body1" },
39
+ "1" => { body: "1" }
40
+ }
41
+ }
42
+ }
43
+
44
+ post_form = PostWithCommentForm::Base.new(params[:post])
45
+
46
+ post_form.save.should == true
47
+
48
+ Post.all.count.should == 1
49
+ Comment.all.count.should == 2
50
+
51
+ post_form.comments.length.should == 2
52
+
53
+ post = Post.first
54
+ post.comments.create(body: 'new_comment')
55
+
56
+ post_form.post.reload
57
+ post_form.post.comments.length.should == 3
58
+
59
+ post_form.reset_nested_objects(:comments)
60
+ post_form.comments.length.should == 3
61
+ end
62
+
63
+ end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: object_attorney
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.10.3
4
+ version: 2.10.5
5
5
  platform: ruby
6
6
  authors:
7
7
  - João Gonçalves
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-03-25 00:00:00.000000000 Z
11
+ date: 2014-04-09 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -94,6 +94,7 @@ files:
94
94
  - spec/object_attorney/bulk_posts_allow_only_new_form_spec.rb
95
95
  - spec/object_attorney/bulk_posts_with_form_objects_form_spec.rb
96
96
  - spec/object_attorney/delegation_spec.rb
97
+ - spec/object_attorney/nested_objects_spec.rb
97
98
  - spec/object_attorney/post_form_spec.rb
98
99
  - spec/object_attorney/post_validations_form_spec.rb
99
100
  - spec/object_attorney/post_with_comment_form_spec.rb
@@ -157,6 +158,7 @@ test_files:
157
158
  - spec/object_attorney/bulk_posts_allow_only_new_form_spec.rb
158
159
  - spec/object_attorney/bulk_posts_with_form_objects_form_spec.rb
159
160
  - spec/object_attorney/delegation_spec.rb
161
+ - spec/object_attorney/nested_objects_spec.rb
160
162
  - spec/object_attorney/post_form_spec.rb
161
163
  - spec/object_attorney/post_validations_form_spec.rb
162
164
  - spec/object_attorney/post_with_comment_form_spec.rb