summaryrefslogtreecommitdiff
path: root/spec/rubyspec/language/undef_spec.rb
diff options
context:
space:
mode:
authoreregon <eregon@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2017-05-27 21:55:02 +0000
committereregon <eregon@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2017-05-27 21:55:02 +0000
commitead40959357817c0937553a45208ef748975e340 (patch)
tree307b315a455953e97bd86cf2bfdc5d53a04cf581 /spec/rubyspec/language/undef_spec.rb
parent24db428785c938d401c9e582b5ea2622540222ad (diff)
Update to ruby/spec@2795010
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@58931 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'spec/rubyspec/language/undef_spec.rb')
-rw-r--r--spec/rubyspec/language/undef_spec.rb49
1 files changed, 41 insertions, 8 deletions
diff --git a/spec/rubyspec/language/undef_spec.rb b/spec/rubyspec/language/undef_spec.rb
index 5e15d2a254..5425b78876 100644
--- a/spec/rubyspec/language/undef_spec.rb
+++ b/spec/rubyspec/language/undef_spec.rb
@@ -1,16 +1,49 @@
require File.expand_path('../../spec_helper', __FILE__)
describe "The undef keyword" do
- it "undefines a method" do
- undef_class = Class.new do
- def meth(o); o; end
+ describe "undefines a method" do
+ before :each do
+ @undef_class = Class.new do
+ def meth(o); o; end
+ end
+ @obj = @undef_class.new
+ @obj.meth(5).should == 5
end
- obj = undef_class.new
- obj.meth(5).should == 5
- undef_class.class_eval do
- undef meth
+
+ it "with an identifier" do
+ @undef_class.class_eval do
+ undef meth
+ end
+ lambda { @obj.meth(5) }.should raise_error(NoMethodError)
+ end
+
+ it "with a simple symbol" do
+ @undef_class.class_eval do
+ undef :meth
+ end
+ lambda { @obj.meth(5) }.should raise_error(NoMethodError)
+ end
+
+ it "with a single quoted symbol" do
+ @undef_class.class_eval do
+ undef :'meth'
+ end
+ lambda { @obj.meth(5) }.should raise_error(NoMethodError)
+ end
+
+ it "with a double quoted symbol" do
+ @undef_class.class_eval do
+ undef :"meth"
+ end
+ lambda { @obj.meth(5) }.should raise_error(NoMethodError)
+ end
+
+ it "with a interpolated symbol" do
+ @undef_class.class_eval do
+ undef :"#{'meth'}"
+ end
+ lambda { @obj.meth(5) }.should raise_error(NoMethodError)
end
- lambda { obj.meth(5) }.should raise_error(NoMethodError)
end
it "allows undefining multiple methods at a time" do