module AssociationSpecs class BelongTo def initialize(klass) @klass = klass end def matches?(object) @object = object association_name = @klass.to_s.underscore associated_object = @klass.new begin @object.send("#{association_name}=", associated_object) @object.send(association_name) == associated_object rescue NoMethodError return false end end def failure_message "expected #{@object.to_s} to belong to #{@klass.to_s}, but it didn't" end def negative_failure_message "expected #{@object.to_s} not to belong to #{@klass.to_s}, but it did" end end def belong_to(klass) BelongTo.new(klass) end end