rails_deep_copy 0.0.2 → 0.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: 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