From 499b5a9197f68e14873e641b737aea40a0f8bc5a Mon Sep 17 00:00:00 2001 From: nobu Date: Thu, 1 Nov 2012 23:24:33 +0000 Subject: proc.c: main.define_method * proc.c (top_define_method): new method, main.define_method. [ruby-core:45715] [Feature #6609] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@37417 b2dd03c8-39d4-4d8f-98ff-823fe69b080e --- test/ruby/test_eval.rb | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) (limited to 'test') diff --git a/test/ruby/test_eval.rb b/test/ruby/test_eval.rb index e7da66e149..580d3e88b1 100644 --- a/test/ruby/test_eval.rb +++ b/test/ruby/test_eval.rb @@ -407,6 +407,24 @@ class TestEval < Test::Unit::TestCase assert_equal("ok", x) end + def test_define_method_toplevel + feature6609 = '[ruby-core:45715]' + main = eval("self", TOPLEVEL_BINDING) + assert_nothing_raised(NoMethodError, feature6609) do + main.instance_eval do + define_method("feature6609_block") {feature6609} + end + end + assert_equal(feature6609, feature6609_block) + + assert_nothing_raised(NoMethodError, feature6609) do + main.instance_eval do + define_method("feature6609_method", Object.instance_method(:feature6609_block)) + end + end + assert_equal(feature6609, feature6609_method) + end + def test_eval_using_integer_as_binding assert_raise(TypeError) { eval("", 1) } end -- cgit v1.2.3