aboutsummaryrefslogtreecommitdiffstats
path: root/spec/matchers/disambiguate_attributes.rb
diff options
context:
space:
mode:
authorNick Kallen <nkallen@nick-kallens-computer-2.local>2008-05-16 17:10:35 -0700
committerNick Kallen <nkallen@nick-kallens-computer-2.local>2008-05-16 17:10:35 -0700
commitb06d351b701906efab737894be674c66561ec524 (patch)
tree3265dc32cb4eb7287e5f718c2131781cd45d0afc /spec/matchers/disambiguate_attributes.rb
parentc96155c4fdd9a15eeca6e59ca3f35197d2ad3541 (diff)
downloadrails-b06d351b701906efab737894be674c66561ec524.tar.gz
rails-b06d351b701906efab737894be674c66561ec524.tar.bz2
rails-b06d351b701906efab737894be674c66561ec524.zip
this is as close as it's been
Diffstat (limited to 'spec/matchers/disambiguate_attributes.rb')
-rw-r--r--spec/matchers/disambiguate_attributes.rb28
1 files changed, 28 insertions, 0 deletions
diff --git a/spec/matchers/disambiguate_attributes.rb b/spec/matchers/disambiguate_attributes.rb
new file mode 100644
index 0000000000..bee7d22b0c
--- /dev/null
+++ b/spec/matchers/disambiguate_attributes.rb
@@ -0,0 +1,28 @@
+module DisambiguateAttributesMatcher
+ class DisambiguateAttributes
+ def initialize(attributes)
+ @attributes = attributes
+ end
+
+ def matches?(actual)
+ @actual = actual
+ attribute1, attribute2 = @attributes
+ @actual[attribute1].descends_from?(attribute1) &&
+ !@actual[attribute1].descends_from?(attribute2) &&
+ @actual[attribute2].descends_from?(attribute2)
+ end
+
+ def failure_message
+ ""
+ # "expected #{@actual} to disambiguate its attributes"
+ end
+
+ def negative_failure_message
+ "expected #{@actual} to not disambiguate its attributes"
+ end
+ end
+
+ def disambiguate_attributes(*attributes)
+ DisambiguateAttributes.new(attributes)
+ end
+end \ No newline at end of file