activerecord_cloneable 0.3.4 → 0.3.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: 1f696254a116d8faa7ff5c1763b0d838a4a9864e
4
- data.tar.gz: 6c86f38177166a90781f582158f36cfa67c615dc
3
+ metadata.gz: 27cf2329d412714a2cb9cccba564b870e34af022
4
+ data.tar.gz: 9a9009d8a1353ee9ae0a6ab2c0f344a9850dcd18
5
5
  SHA512:
6
- metadata.gz: dfebccf4250968ae0d29d82b6ea8a9c7087d4ff872284234a717ceb665c4d961214fd9f3d024043da7ab5dd533b2041f7d43307a8e8e3c5cf294c3837e27d7c7
7
- data.tar.gz: d815681e23c3b9f664a9fceb7cfe20d6d6e0ab14fdb0c21de5ce72df21bd123dc3b6eb3e38dcd82e8d69e53866741090a500f38808731e8b7d33feb504c04e14
6
+ metadata.gz: e42c32c05ab3371c6ab06720187ea19113d4449395aa6a2ec8c385467859e1ebbf39c0130229ec5f8bef21977a0c74d76854ff93296316e0b31a202f79f91eeb
7
+ data.tar.gz: c840068eb59f07d60cf6886060e8bcd61cadce72487d810db0e5ca389dc2315b4e5a56995d4e34fb93593917ff054b1abae16d146ccfcd5fe39073df6d0f83af
@@ -1,6 +1,6 @@
1
1
  Gem::Specification.new do |s|
2
2
  s.name = 'activerecord_cloneable'
3
- s.version = '0.3.4'
3
+ s.version = '0.3.5'
4
4
  s.summary = "A library to help clone active records - that is, generate active new record objects with the data copied from an existing record."
5
5
  s.authors = ["Adam Palmblad"]
6
6
  s.email = 'apalmblad@gmail.com'
@@ -53,6 +53,7 @@ module ActiveRecord::Cloneable
53
53
  begin
54
54
  rec = obj.clone_record( skipped_children: args[:skipped_children] + [self],
55
55
  cloned_parents: args[:cloned_parents] + [self],
56
+ stack: args[:stack] + [ parent_relation.name ],
56
57
  skipped_child_relations: find_applicable_clone_args( parent_relation.name, args[:skipped_child_relations] ),
57
58
  skipped_parent_relations: find_applicable_clone_args( parent_relation.name, args[:skipped_parent_relations] ),
58
59
  shared_parent_relations: find_applicable_clone_args( parent_relation.name, args[:shared_parent_relations] )
@@ -75,7 +76,7 @@ module ActiveRecord::Cloneable
75
76
  nil
76
77
  end
77
78
  end
78
- r_val.flatten
79
+ r_val.flatten.compact
79
80
  end
80
81
  # ---------------------------------------------------- clone_child_relation?
81
82
  def clone_child_relation?( relation_name, skipped_child_relations )
@@ -94,6 +95,7 @@ module ActiveRecord::Cloneable
94
95
  args[:cloned_parents] ||= []
95
96
  args[:skipped_children] ||= []
96
97
  args[:attributes] ||={}
98
+ args[:stack] ||= []
97
99
  cloned_record = args[:object] || self.class.new
98
100
  data = {}
99
101
  self.class.reflections.each do |k,v|
@@ -115,6 +117,7 @@ module ActiveRecord::Cloneable
115
117
  cloned_child_record = kids.build
116
118
  child_args = { cloned_parents: args[:cloned_parents] + [self],
117
119
  attributes: {},
120
+ stack: args[:stack] + [ child_relation.name ],
118
121
  object: cloned_child_record,
119
122
  skipped_parent_relations: find_applicable_clone_args( child_relation.name, args[:skipped_parent_relations] ),
120
123
  shared_parent_relations: find_applicable_clone_args( child_relation.name, args[:shared_parent_relations] ),
@@ -138,8 +141,10 @@ module ActiveRecord::Cloneable
138
141
  next if args[:skipped_children].include?( kid )
139
142
  cloned_child_record = kid.build
140
143
  child_args = { cloned_parents: args[:cloned_parents] + [self],
141
- attributes: {}, object: cloned_child_record,
142
- skipped_child_relations: args[:skipped_child_relations].find_all{ |x| x.is_a?( Hash ) && x[child_relation.name.to_sym] }.map{ |x| x.values }.flatten }
144
+ attributes: {},
145
+ object: cloned_child_record,
146
+ stack: args[:stack] + [ child_relation.name ] ,
147
+ skipped_child_relations: args[:skipped_child_relations].find_all{ |x| x.is_a?( Hash ) && x[child_relation.name.to_sym] }.map{ |x| x.values }.flatten }
143
148
  begin
144
149
  cloned_child_record = kid.clone_record( child_args )
145
150
  cloned_record.send( "#{child_relation.name}=", cloned_child_record )
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: activerecord_cloneable
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.3.4
4
+ version: 0.3.5
5
5
  platform: ruby
6
6
  authors:
7
7
  - Adam Palmblad