activerecord_cloneable 0.3.14 → 0.3.15
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/activerecord_cloneable.gemspec +1 -1
- data/lib/active_record/cloneable.rb +1 -1
- data/test/activerecord_cloneable_test.rb +11 -2
- 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: 700597ad7e34f2e24f51a08af394003c8657a0d6
|
4
|
+
data.tar.gz: 658530761cfad7f8fea4291e44ee7c24fbae9636
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 5d84b1baf0a9f5199977b952151c17acec2f16ec23972a38a13d3fa44a72bec317f3c265e6a1faa1945475714a07481de6eb12504d343bea6f86e785c19450e2
|
7
|
+
data.tar.gz: 2377a1e6eb8d22dbdb6bf2021283a0ff8470e26a6ce06f7517f5762258245e11437e7670f739348b11536d9a030be4d6af7a64ddb88bbe6110a795e22ac453a7
|
@@ -1,6 +1,6 @@
|
|
1
1
|
Gem::Specification.new do |s|
|
2
2
|
s.name = 'activerecord_cloneable'
|
3
|
-
s.version = '0.3.
|
3
|
+
s.version = '0.3.15'
|
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'
|
@@ -111,7 +111,7 @@ module ActiveRecord::Cloneable
|
|
111
111
|
((data[:has_many] || []) + (data[:has_and_belongs_to_many]||[]) ).each do |child_relation|
|
112
112
|
next if child_relation.through_reflection
|
113
113
|
next if !clone_child_relation?( child_relation.name, args[:skipped_child_relations] )
|
114
|
-
kids = send( child_relation.name )
|
114
|
+
kids = send( child_relation.name ).to_a
|
115
115
|
next if kids.nil?
|
116
116
|
kids.each do |child_record|
|
117
117
|
next if args[:skipped_children].include?( child_record )
|
@@ -5,14 +5,23 @@ class ActiveRecordCloneableTest < ActiveSupport::TestCase
|
|
5
5
|
class Apple < ActiveRecord::Base
|
6
6
|
cloneable
|
7
7
|
belongs_to :banana
|
8
|
+
belongs_to :apple_variety
|
8
9
|
validates_presence_of :banana
|
9
10
|
validates_associated :banana
|
11
|
+
end
|
12
|
+
class AppleVariety
|
13
|
+
belongs
|
14
|
+
|
15
|
+
end
|
16
|
+
class FruitBasket
|
17
|
+
|
10
18
|
end
|
11
19
|
class Banana < ActiveRecord::Base
|
12
20
|
cloneable
|
13
21
|
has_many :apples
|
14
22
|
has_one :bread
|
15
23
|
end
|
24
|
+
|
16
25
|
class NonCloneableThing < ActiveRecord::Base
|
17
26
|
belongs_to :apple
|
18
27
|
end
|
@@ -36,8 +45,8 @@ class ActiveRecordCloneableTest < ActiveSupport::TestCase
|
|
36
45
|
Apple.has_many( :non_cloneable_things )
|
37
46
|
original = Banana.new
|
38
47
|
original.save
|
39
|
-
a = original.apples.create
|
40
|
-
a.non_cloneable_things.create
|
48
|
+
a = original.apples.create!
|
49
|
+
a.non_cloneable_things.create!
|
41
50
|
original.save
|
42
51
|
clone = original.clone_record( :skipped_child_relations => [{ :apples => :non_cloneable_things}] )
|
43
52
|
assert( clone.apples.any? )
|