| 1 |
module KeyserSource |
| 2 |
module SpecDSL |
| 3 |
|
| 4 |
class HaveValidAssociations |
| 5 |
def matches?(model) |
| 6 |
@failed_association = nil |
| 7 |
@model_class = model.class |
| 8 |
|
| 9 |
model.class.reflect_on_all_associations.each do |assoc| |
| 10 |
model.send(assoc.name, true) rescue @failed_association = assoc.name |
| 11 |
end |
| 12 |
!@failed_association |
| 13 |
end |
| 14 |
|
| 15 |
def failure_message |
| 16 |
"invalid association \"#{@failed_association}\" on #{@model_class}" |
| 17 |
end |
| 18 |
end |
| 19 |
|
| 20 |
def have_valid_associations |
| 21 |
HaveValidAssociations.new |
| 22 |
end |
| 23 |
end |
| 24 |
end |