summary refs log tree commit diff
diff options
context:
space:
mode:
authorChristian Neukirchen <chneukirchen@gmail.com>2007-12-05 13:26:16 +0100
committerChristian Neukirchen <chneukirchen@gmail.com>2007-12-05 13:26:16 +0100
commit878d917713d943981757f4986ee287aa63ef6b18 (patch)
tree15f020c22c62a338a283cdf02295ccfb8e2d9221
parent802468420c86f904e54d132d54a68189add5b220 (diff)
downloadbacon-878d917713d943981757f4986ee287aa63ef6b18.tar.gz
bacon-878d917713d943981757f4986ee287aa63ef6b18.tar.xz
bacon-878d917713d943981757f4986ee287aa63ef6b18.zip
Add identical_to/same_as
darcs-hash:20071205122616-4fc50-34f25320f27b4db25249d05e092ab2f87d9e40e7.gz
-rw-r--r--lib/bacon.rb5
-rw-r--r--test/spec_bacon.rb8
2 files changed, 12 insertions, 1 deletions
diff --git a/lib/bacon.rb b/lib/bacon.rb
index 4e63422..9b320f2 100644
--- a/lib/bacon.rb
+++ b/lib/bacon.rb
@@ -270,7 +270,7 @@ class Should
   end
 
   def method_missing(name, *args, &block)
-    name = "#{name}?"  if name.to_s =~ /\w/
+    name = "#{name}?"  if name.to_s =~ /\w[^?]\z/
     
     desc = @negated ? "not " : ""
     desc << @object.inspect << "." << name.to_s
@@ -283,4 +283,7 @@ class Should
 
   def equal(value); self == value; end
   def match(value); self =~ value; end
+
+  def identical_to(value); self.equal? value; end
+  alias same_as identical_to
 end
diff --git a/test/spec_bacon.rb b/test/spec_bacon.rb
index 4760331..6847b9d 100644
--- a/test/spec_bacon.rb
+++ b/test/spec_bacon.rb
@@ -162,6 +162,14 @@ describe "Bacon" do
 #    lambda { "string".should.not =~ "strin" }.should fail
   end
 
+  it "should have should.be.identical_to/same_as" do
+    lambda { s = "string"; s.should.be.identical_to s }.should succeed
+    lambda { "string".should.be.identical_to "string" }.should fail
+
+    lambda { s = "string"; s.should.be.same_as s }.should succeed
+    lambda { "string".should.be.same_as "string" }.should fail
+  end
+
   it "should have should.respond_to" do
     lambda { "foo".should.respond_to :to_s }.should succeed
     lambda { 5.should.respond_to :to_str }.should fail