passive_record 0.2.1 → 0.2.2
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/passive_record/instance_methods.rb +9 -1
- data/lib/passive_record/version.rb +1 -1
- data/spec/passive_record_spec.rb +6 -0
- 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: cef72fdda85e2a5d1dabfd009842c092780ce77d
|
4
|
+
data.tar.gz: a6f81fbd8c7a0b88d318e46a8aa232ae69b0a549
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: bb22e938cd0081234dd6f02b02ae060d3fc37e794b78b479a313e6793ab0fe486f367dfa38c91abb98b1f2594297a33ae4b529968d8b3906c1addcaacea6c8a1
|
7
|
+
data.tar.gz: d0e3ee535809bb7817be14dece26cb727bb0db7621fb1a090f9baa2ad69b9f54366c29a73f4651e15f938e2edf802e424390398212510aa6cd5fcc7d50af4cf1
|
@@ -52,7 +52,15 @@ module PassiveRecord
|
|
52
52
|
when target_name
|
53
53
|
matching_relation.lookup
|
54
54
|
when "#{target_name}="
|
55
|
-
|
55
|
+
if args.first.is_a?(Array)
|
56
|
+
# need to loop through each arg and set id
|
57
|
+
args.first.each do |child|
|
58
|
+
child.send(matching_relation.parent_model_id_field + "=", id)
|
59
|
+
end
|
60
|
+
else
|
61
|
+
# assume simple assignment
|
62
|
+
matching_relation.parent_model_id = args.first.id
|
63
|
+
end
|
56
64
|
when "create_#{target_name}", "create_#{target_name.singularize}"
|
57
65
|
matching_relation.create(*args)
|
58
66
|
when "#{target_name}_id"
|
data/spec/passive_record_spec.rb
CHANGED
@@ -182,12 +182,18 @@ describe "passive record models" do
|
|
182
182
|
|
183
183
|
context 'one-to-many relationships' do
|
184
184
|
let(:parent) { Parent.create }
|
185
|
+
let(:another_parent) { Parent.create(children: [another_child]) }
|
186
|
+
let(:another_child) { Child.create }
|
185
187
|
|
186
188
|
it 'should create children' do
|
187
189
|
expect { parent.create_child }.to change{ Child.count }.by(1)
|
188
190
|
expect(parent.children).to all(be_a(Child))
|
189
191
|
end
|
190
192
|
|
193
|
+
it 'should assign children on creation' do
|
194
|
+
expect(another_parent.children).to match_array([another_child])
|
195
|
+
end
|
196
|
+
|
191
197
|
it 'should create inverse relationships' do
|
192
198
|
child = parent.create_child
|
193
199
|
expect(child.parent).to eq(parent)
|