Created
February 4, 2010 23:36
-
-
Save kronos/295273 to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
From 4c41564ae6363cd028d5c446bf88ebebf7176c90 Mon Sep 17 00:00:00 2001 | |
From: Ivan Samsonov <[email protected]> | |
Date: Fri, 5 Feb 2010 04:02:44 +0300 | |
Subject: [PATCH] Update defined? spec for undefined methods | |
--- | |
language/defined_spec.rb | 6 ++++++ | |
language/fixtures/defined.rb | 18 ++++++++++++++++++ | |
2 files changed, 24 insertions(+), 0 deletions(-) | |
create mode 100644 language/fixtures/defined.rb | |
diff --git a/language/defined_spec.rb b/language/defined_spec.rb | |
index 226b1e1..5c3f7ef 100644 | |
--- a/language/defined_spec.rb | |
+++ b/language/defined_spec.rb | |
@@ -1,4 +1,5 @@ | |
require File.dirname(__FILE__) + '/../spec_helper' | |
+require File.dirname(__FILE__) + '/fixtures/defined' | |
describe "The defined? keyword" do | |
class LanguageDefinedSpecs | |
@@ -156,6 +157,11 @@ describe "The defined? keyword" do | |
ret.should == nil | |
end | |
+ it "returns nil for a method, which was undefined in an ancestor" do | |
+ ret = DefinedSpecs::ClassWithoutMethod.new.test | |
+ ret.should == nil | |
+ end | |
+ | |
it "returns 'expression' when defined?(:File) is sent" do | |
ret = defined?(:File) | |
ret.should == "expression" | |
diff --git a/language/fixtures/defined.rb b/language/fixtures/defined.rb | |
new file mode 100644 | |
index 0000000..d51a41e | |
--- /dev/null | |
+++ b/language/fixtures/defined.rb | |
@@ -0,0 +1,18 @@ | |
+module DefinedSpecs | |
+ class ClassWithMethod | |
+ def test | |
+ end | |
+ end | |
+ | |
+ class ClassUndefiningMethod < ClassWithMethod | |
+ undef :test | |
+ end | |
+ | |
+ class ClassWithoutMethod < ClassUndefiningMethod | |
+ # If an undefined method overridden in descendants | |
+ # define?(super) should return nil | |
+ def test | |
+ defined?(super) | |
+ end | |
+ end | |
+end | |
-- | |
1.6.1 |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment