active_type 0.4.4 → 0.4.5

Sign up to get free protection for your applications and to get access to all the features.
Files changed (39) hide show
  1. checksums.yaml +4 -4
  2. data/.ruby-version +1 -1
  3. data/.travis.yml +1 -1
  4. data/README.md +4 -4
  5. data/gemfiles/Gemfile.3.2.mysql2 +1 -1
  6. data/gemfiles/Gemfile.3.2.mysql2.lock +16 -11
  7. data/gemfiles/Gemfile.3.2.sqlite3 +1 -1
  8. data/gemfiles/Gemfile.3.2.sqlite3.lock +16 -11
  9. data/gemfiles/Gemfile.4.0.sqlite3 +1 -1
  10. data/gemfiles/Gemfile.4.0.sqlite3.lock +16 -11
  11. data/gemfiles/Gemfile.4.1.sqlite3 +1 -1
  12. data/gemfiles/Gemfile.4.1.sqlite3.lock +16 -11
  13. data/gemfiles/Gemfile.4.2.1.mysql2 +1 -1
  14. data/gemfiles/Gemfile.4.2.1.mysql2.lock +16 -11
  15. data/gemfiles/Gemfile.4.2.1.pg +1 -1
  16. data/gemfiles/Gemfile.4.2.1.pg.lock +16 -11
  17. data/gemfiles/Gemfile.4.2.1.sqlite3 +1 -1
  18. data/gemfiles/Gemfile.4.2.1.sqlite3.lock +16 -11
  19. data/lib/active_type/version.rb +1 -1
  20. data/lib/active_type/virtual_attributes.rb +1 -1
  21. data/spec/active_type/extended_record/single_table_inheritance_spec.rb +6 -6
  22. data/spec/active_type/extended_record_spec.rb +32 -26
  23. data/spec/active_type/nested_attributes_spec.rb +51 -51
  24. data/spec/active_type/object_spec.rb +44 -33
  25. data/spec/active_type/record_spec.rb +15 -11
  26. data/spec/active_type/util_spec.rb +25 -25
  27. data/spec/integration/holidays_spec.rb +13 -13
  28. data/spec/integration/shape_spec.rb +12 -14
  29. data/spec/integration/sign_in_spec.rb +12 -12
  30. data/spec/integration/sign_up_spec.rb +9 -9
  31. data/spec/shared_examples/accessors.rb +3 -3
  32. data/spec/shared_examples/belongs_to.rb +2 -2
  33. data/spec/shared_examples/coercible_columns.rb +27 -27
  34. data/spec/shared_examples/constructor.rb +2 -2
  35. data/spec/shared_examples/defaults.rb +10 -10
  36. data/spec/shared_examples/dirty_tracking.rb +4 -4
  37. data/spec/shared_examples/dupable.rb +4 -4
  38. data/spec/shared_examples/mass_assignment.rb +1 -1
  39. metadata +2 -2
@@ -38,11 +38,11 @@ describe "ActiveType::Record[ActiveRecord::Base]" do
38
38
  subject { ExtendedRecordSpec::ExtendedRecord.new }
39
39
 
40
40
  it 'is inherits from the base type' do
41
- subject.should be_a(ExtendedRecordSpec::BaseRecord)
41
+ expect(subject).to be_a(ExtendedRecordSpec::BaseRecord)
42
42
  end
43
43
 
44
44
  it 'has the same model name as the base class' do
45
- subject.class.model_name.singular.should == ExtendedRecordSpec::BaseRecord.model_name.singular
45
+ expect(subject.class.model_name.singular).to eq(ExtendedRecordSpec::BaseRecord.model_name.singular)
46
46
  end
47
47
 
48
48
  describe 'constructors' do
@@ -57,7 +57,7 @@ describe "ActiveType::Record[ActiveRecord::Base]" do
57
57
  subject.persisted_string = "string"
58
58
  subject.another_virtual_string = "string"
59
59
 
60
- subject.attributes.should == {
60
+ expect(subject.attributes).to eq({
61
61
  "another_virtual_string" => "string",
62
62
  "id" => nil,
63
63
  "persisted_string" => "string",
@@ -65,7 +65,7 @@ describe "ActiveType::Record[ActiveRecord::Base]" do
65
65
  "persisted_time" => nil,
66
66
  "persisted_date" => nil,
67
67
  "persisted_boolean" => nil
68
- }
68
+ })
69
69
  end
70
70
 
71
71
  end
@@ -77,9 +77,9 @@ describe "ActiveType::Record[ActiveRecord::Base]" do
77
77
  describe 'persistence' do
78
78
  it 'persists to the database' do
79
79
  subject.persisted_string = "persisted string"
80
- subject.save.should be_true
80
+ expect(subject.save).to eq(true)
81
81
 
82
- subject.class.find(subject.id).persisted_string.should == "persisted string"
82
+ expect(subject.class.find(subject.id).persisted_string).to eq("persisted string")
83
83
  end
84
84
  end
85
85
 
@@ -87,13 +87,13 @@ describe "ActiveType::Record[ActiveRecord::Base]" do
87
87
  it 'returns an instance of the extended model' do
88
88
  subject.save
89
89
 
90
- subject.class.find(subject.id).should be_a(subject.class)
90
+ expect(subject.class.find(subject.id)).to be_a(subject.class)
91
91
  end
92
92
  end
93
93
 
94
94
  describe '.base_class' do
95
95
  it 'is the base class inherited from' do
96
- subject.class.base_class.should == ExtendedRecordSpec::BaseRecord
96
+ expect(subject.class.base_class).to eq(ExtendedRecordSpec::BaseRecord)
97
97
  end
98
98
  end
99
99
 
@@ -104,11 +104,11 @@ describe "class ... < ActiveType::Record[ActiveRecord::Base]" do
104
104
  subject { ExtendedRecordSpec::InheritingFromExtendedRecord.new }
105
105
 
106
106
  it 'is inherits from the base type' do
107
- subject.should be_a(ExtendedRecordSpec::ExtendedRecord)
107
+ expect(subject).to be_a(ExtendedRecordSpec::ExtendedRecord)
108
108
  end
109
109
 
110
110
  it 'has the same model name as the base class' do
111
- subject.class.model_name.singular.should == ExtendedRecordSpec::BaseRecord.model_name.singular
111
+ expect(subject.class.model_name.singular).to eq(ExtendedRecordSpec::BaseRecord.model_name.singular)
112
112
  end
113
113
 
114
114
  describe '#attributes' do
@@ -118,7 +118,7 @@ describe "class ... < ActiveType::Record[ActiveRecord::Base]" do
118
118
  subject.another_virtual_string = "string"
119
119
  subject.yet_another_virtual_string = "string"
120
120
 
121
- subject.attributes.should == {
121
+ expect(subject.attributes).to eq({
122
122
  "another_virtual_string" => "string",
123
123
  "yet_another_virtual_string" => "string",
124
124
  "id" => nil,
@@ -127,7 +127,7 @@ describe "class ... < ActiveType::Record[ActiveRecord::Base]" do
127
127
  "persisted_time" => nil,
128
128
  "persisted_date" => nil,
129
129
  "persisted_boolean" => nil
130
- }
130
+ })
131
131
  end
132
132
 
133
133
  end
@@ -135,9 +135,9 @@ describe "class ... < ActiveType::Record[ActiveRecord::Base]" do
135
135
  describe 'persistence' do
136
136
  it 'persists to the database' do
137
137
  subject.persisted_string = "persisted string"
138
- subject.save.should be_true
138
+ expect(subject.save).to eq(true)
139
139
 
140
- subject.class.find(subject.id).persisted_string.should == "persisted string"
140
+ expect(subject.class.find(subject.id).persisted_string).to eq("persisted string")
141
141
  end
142
142
  end
143
143
 
@@ -145,7 +145,7 @@ describe "class ... < ActiveType::Record[ActiveRecord::Base]" do
145
145
  it 'returns an instance of the inheriting model' do
146
146
  subject.save
147
147
 
148
- subject.class.find(subject.id).should be_a(subject.class)
148
+ expect(subject.class.find(subject.id)).to be_a(subject.class)
149
149
  end
150
150
  end
151
151
 
@@ -156,11 +156,11 @@ describe "ActiveType::Record[ActiveType::Record]" do
156
156
  subject { ExtendedRecordSpec::ExtendedActiveTypeRecord.new }
157
157
 
158
158
  it 'is inherits from the base type' do
159
- subject.should be_a(ExtendedRecordSpec::BaseActiveTypeRecord)
159
+ expect(subject).to be_a(ExtendedRecordSpec::BaseActiveTypeRecord)
160
160
  end
161
161
 
162
162
  it 'has the same model name as the base class' do
163
- subject.class.model_name.singular.should == ExtendedRecordSpec::BaseActiveTypeRecord.model_name.singular
163
+ expect(subject.class.model_name.singular).to eq(ExtendedRecordSpec::BaseActiveTypeRecord.model_name.singular)
164
164
  end
165
165
 
166
166
  describe 'constructors' do
@@ -175,7 +175,7 @@ describe "ActiveType::Record[ActiveType::Record]" do
175
175
  subject.persisted_string = "string"
176
176
  subject.virtual_string = "string"
177
177
 
178
- subject.attributes.should == {
178
+ expect(subject.attributes).to eq({
179
179
  "virtual_string" => "string",
180
180
  "another_virtual_string" => nil,
181
181
  "id" => nil,
@@ -184,7 +184,7 @@ describe "ActiveType::Record[ActiveType::Record]" do
184
184
  "persisted_time" => nil,
185
185
  "persisted_date" => nil,
186
186
  "persisted_boolean" => nil
187
- }
187
+ })
188
188
  end
189
189
 
190
190
  end
@@ -196,17 +196,23 @@ describe "ActiveType::Record[ActiveType::Record]" do
196
196
  describe 'validations' do
197
197
  subject { ExtendedRecordSpec::ExtendedRecordWithValidations.new }
198
198
 
199
- it { should have(1).error_on(:persisted_string) }
200
- it { should have(1).error_on(:virtual_string) }
201
- it { should have(1).error_on(:another_virtual_string) }
199
+ it 'has 1 error_on' do
200
+ expect(subject.error_on(:persisted_string).size).to eq(1)
201
+ end
202
+ it 'has 1 error_on' do
203
+ expect(subject.error_on(:virtual_string).size).to eq(1)
204
+ end
205
+ it 'has 1 error_on' do
206
+ expect(subject.error_on(:another_virtual_string).size).to eq(1)
207
+ end
202
208
  end
203
209
 
204
210
  describe 'persistence' do
205
211
  it 'persists to the database' do
206
212
  subject.persisted_string = "persisted string"
207
- subject.save.should be_true
213
+ expect(subject.save).to eq(true)
208
214
 
209
- subject.class.find(subject.id).persisted_string.should == "persisted string"
215
+ expect(subject.class.find(subject.id).persisted_string).to eq("persisted string")
210
216
  end
211
217
  end
212
218
 
@@ -214,13 +220,13 @@ describe "ActiveType::Record[ActiveType::Record]" do
214
220
  it 'returns an instance of the extended model' do
215
221
  subject.save
216
222
 
217
- subject.class.find(subject.id).should be_a(subject.class)
223
+ expect(subject.class.find(subject.id)).to be_a(subject.class)
218
224
  end
219
225
  end
220
226
 
221
227
  describe '.base_class' do
222
228
  it 'is the base class inherited from' do
223
- subject.class.base_class.should == ExtendedRecordSpec::BaseActiveTypeRecord
229
+ expect(subject.class.base_class).to eq(ExtendedRecordSpec::BaseActiveTypeRecord)
224
230
  end
225
231
  end
226
232
 
@@ -54,16 +54,16 @@ describe "ActiveType::Object" do
54
54
  end
55
55
 
56
56
  def should_assign_and_persist(assign, persist = assign)
57
- subject.records.map(&:persisted_string).should == assign
58
- subject.save.should be_true
59
- NestedAttributesSpec::Record.all.map(&:persisted_string).should =~ persist
57
+ expect(subject.records.map(&:persisted_string)).to eq(assign)
58
+ expect(subject.save).to eq(true)
59
+ expect(NestedAttributesSpec::Record.all.map(&:persisted_string)).to match_array(persist)
60
60
  end
61
61
 
62
62
 
63
63
  context 'with no records assigned' do
64
64
 
65
65
  it 'can save' do
66
- subject.save.should be_true
66
+ expect(subject.save).to eq(true)
67
67
  end
68
68
 
69
69
  end
@@ -72,7 +72,7 @@ describe "ActiveType::Object" do
72
72
 
73
73
  it 'will do nothing' do
74
74
  subject.records_attributes = nil
75
- subject.records.should be_nil
75
+ expect(subject.records).to be_nil
76
76
  end
77
77
 
78
78
  end
@@ -176,7 +176,7 @@ describe "ActiveType::Object" do
176
176
  { :id => existing.id, :_destroy => "true" },
177
177
  ]
178
178
  should_assign_and_persist(["do not delete this"], ["do not delete this"])
179
- subject.records.size.should == 1
179
+ expect(subject.records.size).to eq(1)
180
180
  end
181
181
 
182
182
  it 'destroys records on _destroy => trueish if allowed' do
@@ -197,7 +197,7 @@ describe "ActiveType::Object" do
197
197
  { :id => existing[3].id, :_destroy => "0" },
198
198
  ]
199
199
  should_assign_and_persist(["delete this", "delete this", "delete this", "keep this"], ["keep this"])
200
- subject.records.size.should == 1
200
+ expect(subject.records.size).to eq(1)
201
201
  end
202
202
 
203
203
  end
@@ -264,8 +264,8 @@ describe "ActiveType::Object" do
264
264
  NestedAttributesSpec::Record.new(:fail_on_save => true),
265
265
  ]
266
266
 
267
- subject.save.should be_false
268
- NestedAttributesSpec::Record.count.should == 0
267
+ expect(subject.save).to be_falsey
268
+ expect(NestedAttributesSpec::Record.count).to eq(0)
269
269
 
270
270
  # note that other children would be saved and not be rolled back
271
271
  # this is also true for regular nested attributes
@@ -278,7 +278,7 @@ describe "ActiveType::Object" do
278
278
  describe '#valid?' do
279
279
 
280
280
  it 'is true if there are no records assigned' do
281
- subject.valid?.should be_true
281
+ expect(subject.valid?).to eq(true)
282
282
  end
283
283
 
284
284
  it 'is true if all records are valid' do
@@ -287,7 +287,7 @@ describe "ActiveType::Object" do
287
287
  NestedAttributesSpec::Record.new,
288
288
  ]
289
289
 
290
- subject.valid?.should be_true
290
+ expect(subject.valid?).to eq(true)
291
291
  end
292
292
 
293
293
  it 'is false if one child has an error' do
@@ -296,7 +296,7 @@ describe "ActiveType::Object" do
296
296
  NestedAttributesSpec::Record.new(:error => 'some error'),
297
297
  ]
298
298
 
299
- subject.valid?.should be_false
299
+ expect(subject.valid?).to be_falsey
300
300
  end
301
301
 
302
302
  it 'is copies the error to the record' do
@@ -306,7 +306,7 @@ describe "ActiveType::Object" do
306
306
  ]
307
307
 
308
308
  subject.valid?
309
- subject.errors["records.base"].should == ['some error']
309
+ expect(subject.errors["records.base"]).to eq(['some error'])
310
310
  end
311
311
 
312
312
  end
@@ -333,20 +333,20 @@ describe "ActiveType::Object" do
333
333
 
334
334
  def should_assign_and_persist(assign, persist = assign)
335
335
  if assign
336
- subject.record.should be_present
337
- subject.record.persisted_string.should == assign
336
+ expect(subject.record).to be_present
337
+ expect(subject.record.persisted_string).to eq(assign)
338
338
  else
339
- subject.record.should be_nil
339
+ expect(subject.record).to be_nil
340
340
  end
341
- subject.save.should be_true
342
- NestedAttributesSpec::Record.all.map(&:persisted_string).should == (persist ? [persist] : [])
341
+ expect(subject.save).to eq(true)
342
+ expect(NestedAttributesSpec::Record.all.map(&:persisted_string)).to eq(persist ? [persist] : [])
343
343
  end
344
344
 
345
345
 
346
346
  context 'with no record assigned' do
347
347
 
348
348
  it 'can save' do
349
- subject.save.should be_true
349
+ expect(subject.save).to eq(true)
350
350
  end
351
351
 
352
352
  end
@@ -355,7 +355,7 @@ describe "ActiveType::Object" do
355
355
 
356
356
  it 'will do nothing' do
357
357
  subject.record_attributes = nil
358
- subject.record.should be_nil
358
+ expect(subject.record).to be_nil
359
359
  end
360
360
 
361
361
  end
@@ -423,7 +423,7 @@ describe "ActiveType::Object" do
423
423
  subject.record_attributes = { :id => record.id, :_destroy => true }
424
424
 
425
425
  should_assign_and_persist("existing string", nil)
426
- subject.record.should == nil
426
+ expect(subject.record).to eq(nil)
427
427
  end
428
428
 
429
429
  it 'raises an error if the assigned record does not match the id' do
@@ -446,26 +446,26 @@ describe "ActiveType::Object" do
446
446
  describe '#valid?' do
447
447
 
448
448
  it 'is true if there is no record assigned' do
449
- subject.valid?.should be_true
449
+ expect(subject.valid?).to eq(true)
450
450
  end
451
451
 
452
452
  it 'is true if the assigned record is valid' do
453
453
  subject.record = NestedAttributesSpec::Record.new
454
454
 
455
- subject.valid?.should be_true
455
+ expect(subject.valid?).to eq(true)
456
456
  end
457
457
 
458
458
  it 'is false the assigned record has an error' do
459
459
  subject.record = NestedAttributesSpec::Record.new(:error => 'some error')
460
460
 
461
- subject.valid?.should be_false
461
+ expect(subject.valid?).to be_falsey
462
462
  end
463
463
 
464
464
  it 'is copies the error to the record' do
465
465
  subject.record = NestedAttributesSpec::Record.new(:error => 'some error')
466
466
 
467
467
  subject.valid?
468
- subject.errors["record.base"].should == ['some error']
468
+ expect(subject.errors["record.base"]).to eq(['some error'])
469
469
  end
470
470
 
471
471
  end
@@ -492,10 +492,10 @@ describe "ActiveType::Object" do
492
492
  subject.record_attributes = { :persisted_string => "string" }
493
493
  subject.another_record_attributes = {:persisted_string => "another string"}
494
494
 
495
- subject.record.persisted_string.should == "string"
496
- subject.another_record.persisted_string.should == "another string"
497
- subject.save.should be_true
498
- NestedAttributesSpec::Record.all.map(&:persisted_string).should =~ ["string", "another string"]
495
+ expect(subject.record.persisted_string).to eq("string")
496
+ expect(subject.another_record.persisted_string).to eq("another string")
497
+ expect(subject.save).to eq(true)
498
+ expect(NestedAttributesSpec::Record.all.map(&:persisted_string)).to match_array(["string", "another string"])
499
499
  end
500
500
 
501
501
  it 'allows overriding of the accessor' do
@@ -509,12 +509,12 @@ describe "ActiveType::Object" do
509
509
  end
510
510
  end.new
511
511
 
512
- subject.should_receive(:reached)
512
+ expect(subject).to receive(:reached)
513
513
  subject.record_attributes = { :persisted_string => "string" }
514
514
 
515
- subject.record.persisted_string.should == "string"
516
- subject.save.should be_true
517
- NestedAttributesSpec::Record.all.map(&:persisted_string).should =~ ["string"]
515
+ expect(subject.record.persisted_string).to eq("string")
516
+ expect(subject.save).to eq(true)
517
+ expect(NestedAttributesSpec::Record.all.map(&:persisted_string)).to match_array(["string"])
518
518
  end
519
519
 
520
520
  end
@@ -532,8 +532,8 @@ describe "ActiveType::Object" do
532
532
  subject.global_records_attributes = { 1 => { :persisted_string => "string" } }
533
533
  subject.global_record_attributes = { :persisted_string => "string" }
534
534
 
535
- subject.global_records.first.should be_a(GlobalRecord)
536
- subject.global_record.should be_a(GlobalRecord)
535
+ expect(subject.global_records.first).to be_a(GlobalRecord)
536
+ expect(subject.global_record).to be_a(GlobalRecord)
537
537
  end
538
538
 
539
539
  end
@@ -554,15 +554,15 @@ describe "ActiveType::Object" do
554
554
  subject.records_attributes = { 1 => { :persisted_string => "string" } }
555
555
  subject.record_attributes = { :persisted_string => "string" }
556
556
 
557
- subject.records.first.should be_a(NestedAttributesSpec::Record)
558
- subject.record.should be_a(NestedAttributesSpec::Record)
557
+ expect(subject.records.first).to be_a(NestedAttributesSpec::Record)
558
+ expect(subject.record).to be_a(NestedAttributesSpec::Record)
559
559
  end
560
560
 
561
561
  it 'evals the scope lazily in the instance' do
562
562
  subject.default_value = "default value"
563
563
  subject.default_records_attributes = [{}]
564
564
 
565
- subject.default_records.map(&:persisted_string).should == ["default value"]
565
+ expect(subject.default_records.map(&:persisted_string)).to eq(["default value"])
566
566
  end
567
567
 
568
568
  it 'caches the scope' do
@@ -571,7 +571,7 @@ describe "ActiveType::Object" do
571
571
  subject.default_value = "another default value"
572
572
  subject.default_records_attributes = [{}]
573
573
 
574
- subject.default_records.map(&:persisted_string).should == ["default value", "default value"]
574
+ expect(subject.default_records.map(&:persisted_string)).to eq(["default value", "default value"])
575
575
  end
576
576
 
577
577
  it 'caches the scope per instance' do
@@ -582,7 +582,7 @@ describe "ActiveType::Object" do
582
582
  another_subject.default_value = "another default value"
583
583
  another_subject.default_records_attributes = [{}]
584
584
 
585
- another_subject.default_records.map(&:persisted_string).should == ["another default value"]
585
+ expect(another_subject.default_records.map(&:persisted_string)).to eq(["another default value"])
586
586
  end
587
587
 
588
588
  it 'raises an error if the child record is not found via the scope' do
@@ -620,7 +620,7 @@ describe "ActiveType::Object" do
620
620
 
621
621
  it 'nests_many uses the build_scope to find records' do
622
622
  subject.records_attributes = [{}]
623
- subject.records.first.persisted_string.should == 'buildable'
623
+ expect(subject.records.first.persisted_string).to eq('buildable')
624
624
  end
625
625
 
626
626
  it 'nests_one uses the find_scope to find records' do
@@ -639,7 +639,7 @@ describe "ActiveType::Object" do
639
639
 
640
640
  it 'nests_one uses the build_scope to find records' do
641
641
  subject.record_attributes = {}
642
- subject.record.persisted_string.should == 'buildable'
642
+ expect(subject.record.persisted_string).to eq('buildable')
643
643
  end
644
644
 
645
645
  end
@@ -665,14 +665,14 @@ describe "ActiveType::Object" do
665
665
  end
666
666
 
667
667
  it 'accepts a :default value' do
668
- subject.records.map(&:persisted_string).should == ["default"]
669
- subject.record.persisted_string.should == "default"
668
+ expect(subject.records.map(&:persisted_string)).to eq(["default"])
669
+ expect(subject.record.persisted_string).to eq("default")
670
670
  end
671
671
 
672
672
  it 'computes the value lazily' do
673
- subject.stub :default_record => NestedAttributesSpec::Record.new(:persisted_string => "other default")
674
- subject.records.map(&:persisted_string).should == ["other default"]
675
- subject.record.persisted_string.should == "other default"
673
+ allow(subject).to receive_messages :default_record => NestedAttributesSpec::Record.new(:persisted_string => "other default")
674
+ expect(subject.records.map(&:persisted_string)).to eq(["other default"])
675
+ expect(subject.record.persisted_string).to eq("other default")
676
676
  end
677
677
 
678
678
  end
@@ -684,8 +684,8 @@ end
684
684
  describe "ActiveType::Record" do
685
685
 
686
686
  it 'supports nested attributes' do
687
- ActiveType::Record.should respond_to(:nests_one)
688
- ActiveType::Record.should respond_to(:nests_many)
687
+ expect(ActiveType::Record).to respond_to(:nests_one)
688
+ expect(ActiveType::Record).to respond_to(:nests_many)
689
689
  end
690
690
 
691
691
  end
@@ -693,8 +693,8 @@ end
693
693
  describe "ActiveType::Record" do
694
694
 
695
695
  it 'supports nested attributes' do
696
- ActiveType::Record[NestedAttributesSpec::Record].should respond_to(:nests_one)
697
- ActiveType::Record[NestedAttributesSpec::Record].should respond_to(:nests_many)
696
+ expect(ActiveType::Record[NestedAttributesSpec::Record]).to respond_to(:nests_one)
697
+ expect(ActiveType::Record[NestedAttributesSpec::Record]).to respond_to(:nests_many)
698
698
  end
699
699
 
700
700
  end