rails_deep_copy 0.0.2 → 0.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: 5882ee5fe0bdeeab6a957e2dead1cbcfa780aef2
4
- data.tar.gz: dc9c088efbab23504a6402e5c9b0c357a46669fb
3
+ metadata.gz: 32f436a3503aa45c13e3775c4f2680b50f6ae4d4
4
+ data.tar.gz: d3289c42f5dfbf6900c8c73e4e9a97659895ee4f
5
5
  SHA512:
6
- metadata.gz: 548965e420df41027dcd9ccbded47f1b2b4af44b392a8e16c38fd496334e53c8e4bc5e1e92a36db6dee108adaa7a71f18aa0906b0e6d2ec7949aa22594e5e5c1
7
- data.tar.gz: 896d720879a44bc1aaaab9315672939943234a5a998cd93c378867c15ee12158dd82601b7e4158099ae3f4584f632a9d010f38502d99afd23ccdf05f875078a9
6
+ metadata.gz: a4d06a012de451061a08f7d7958ae9d23a1d2ed1d015f9fb217a1fb7ddde292c631974811b43ce6bbd79b0a2a1c4301c9d05a4027ff4b86b12721cbc5d826749
7
+ data.tar.gz: 016dd1df64b1e25913f883686fa2de63eea17a01eaff28c6da149ec15c4c42357c5ea27851e78049de3125f8cf6b0b723b4e33f9ea0fd94a8e4215f90c07b105
@@ -1,3 +1,3 @@
1
1
  module RailsDeepCopy
2
- VERSION = "0.0.2"
2
+ VERSION = "0.0.5"
3
3
  end
@@ -12,12 +12,12 @@ module RailsDeepCopy
12
12
  @skip_validations = options[:skip_validations] || true
13
13
  @id_hash = options[:id_hash] || {}
14
14
  @changes.merge!(@id_hash)
15
+ @duplicated_objects = options.fetch(:duplicated_objects, [])
15
16
  setup_associations
16
17
  end
17
18
 
18
19
  def self.create(object_to_duplicate, options = {})
19
20
  Duplicate.new(object_to_duplicate, options).execute
20
- @new_object
21
21
  end
22
22
 
23
23
  def default_associations
@@ -88,15 +88,17 @@ module RailsDeepCopy
88
88
  def execute
89
89
  implement_new_object_differences
90
90
  @new_object.save(:validate => validate?) && update_id_hash
91
+ @duplicated_objects << @new_object
91
92
  associations.each do |association|
92
93
  objects = [@object_to_duplicate.send(association.name)].flatten
93
94
  objects.each do |obj|
94
95
  # recursively create child objects and assign IDs
95
- Duplicate.create(obj, id_hash: id_hash)
96
+ Duplicate.create(obj, id_hash: id_hash, duplicated_objects: @duplicated_objects)
96
97
  end
97
98
  end
98
99
  # done with children - remove ID from ID hash
99
100
  remove_id_from_id_hash
101
+ @duplicated_objects.first
100
102
  end
101
103
 
102
104
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rails_deep_copy
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.2
4
+ version: 0.0.5
5
5
  platform: ruby
6
6
  authors:
7
7
  - Ryan Francis