diff options
author | eregon <eregon@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2017-05-27 21:55:02 +0000 |
---|---|---|
committer | eregon <eregon@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2017-05-27 21:55:02 +0000 |
commit | ead40959357817c0937553a45208ef748975e340 (patch) | |
tree | 307b315a455953e97bd86cf2bfdc5d53a04cf581 /spec/rubyspec/language/undef_spec.rb | |
parent | 24db428785c938d401c9e582b5ea2622540222ad (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.rb | 49 |
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 |