* eval.c (Init_eval): Make Module#include and Module#prepend public

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@42809 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
a_matsuda 2013-09-03 12:42:01 +00:00
Родитель 1908874bf4
Коммит 26766ee89c
3 изменённых файлов: 21 добавлений и 2 удалений

Просмотреть файл

@ -1,3 +1,9 @@
Tue Sep 3 21:41:37 2013 Akira Matsuda <ronnie@dio.jp>
* eval.c (Init_eval): Make Module#include and Module#prepend public
* test/ruby/test_module.rb (class TestModule): Test for above
Tue Sep 3 21:35:19 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
* thread_pthread.c (sys/dyntune.h): for gettune().

5
eval.c
Просмотреть файл

@ -1592,11 +1592,12 @@ Init_eval(void)
rb_define_global_function("__callee__", rb_f_callee_name, 0);
rb_define_global_function("__dir__", f_current_dirname, 0);
rb_define_method(rb_cModule, "include", rb_mod_include, -1);
rb_define_method(rb_cModule, "prepend", rb_mod_prepend, -1);
rb_define_private_method(rb_cModule, "append_features", rb_mod_append_features, 1);
rb_define_private_method(rb_cModule, "extend_object", rb_mod_extend_object, 1);
rb_define_private_method(rb_cModule, "include", rb_mod_include, -1);
rb_define_private_method(rb_cModule, "prepend_features", rb_mod_prepend_features, 1);
rb_define_private_method(rb_cModule, "prepend", rb_mod_prepend, -1);
rb_define_private_method(rb_cModule, "refine", rb_mod_refine, 1);
rb_define_private_method(rb_cModule, "using", mod_using, 1);
rb_undef_method(rb_cClass, "refine");

Просмотреть файл

@ -351,6 +351,12 @@ class TestModule < Test::Unit::TestCase
refute_equal original, b.inspect, bug6454
end
def test_public_include
assert_nothing_raised('#8846') do
Module.new.include(Module.new { def foo; end }).instance_methods == [:foo]
end
end
def test_included_modules
assert_equal([], Mixin.included_modules)
assert_equal([Mixin], User.included_modules)
@ -1380,6 +1386,12 @@ class TestModule < Test::Unit::TestCase
assert_equal(expected, obj.m1)
end
def test_public_prepend
assert_nothing_raised('#8846') do
Class.new.prepend(Module.new)
end
end
def test_prepend_inheritance
bug6654 = '[ruby-core:45914]'
a = labeled_module("a")