* 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:
parent
1908874bf4
commit
26766ee89c
@ -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>
|
Tue Sep 3 21:35:19 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
|
||||||
|
|
||||||
* thread_pthread.c (sys/dyntune.h): for gettune().
|
* thread_pthread.c (sys/dyntune.h): for gettune().
|
||||||
|
5
eval.c
5
eval.c
@ -1592,11 +1592,12 @@ Init_eval(void)
|
|||||||
rb_define_global_function("__callee__", rb_f_callee_name, 0);
|
rb_define_global_function("__callee__", rb_f_callee_name, 0);
|
||||||
rb_define_global_function("__dir__", f_current_dirname, 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, "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, "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_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, "refine", rb_mod_refine, 1);
|
||||||
rb_define_private_method(rb_cModule, "using", mod_using, 1);
|
rb_define_private_method(rb_cModule, "using", mod_using, 1);
|
||||||
rb_undef_method(rb_cClass, "refine");
|
rb_undef_method(rb_cClass, "refine");
|
||||||
|
@ -351,6 +351,12 @@ class TestModule < Test::Unit::TestCase
|
|||||||
refute_equal original, b.inspect, bug6454
|
refute_equal original, b.inspect, bug6454
|
||||||
end
|
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
|
def test_included_modules
|
||||||
assert_equal([], Mixin.included_modules)
|
assert_equal([], Mixin.included_modules)
|
||||||
assert_equal([Mixin], User.included_modules)
|
assert_equal([Mixin], User.included_modules)
|
||||||
@ -1380,6 +1386,12 @@ class TestModule < Test::Unit::TestCase
|
|||||||
assert_equal(expected, obj.m1)
|
assert_equal(expected, obj.m1)
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def test_public_prepend
|
||||||
|
assert_nothing_raised('#8846') do
|
||||||
|
Class.new.prepend(Module.new)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
def test_prepend_inheritance
|
def test_prepend_inheritance
|
||||||
bug6654 = '[ruby-core:45914]'
|
bug6654 = '[ruby-core:45914]'
|
||||||
a = labeled_module("a")
|
a = labeled_module("a")
|
||||||
|
Loading…
x
Reference in New Issue
Block a user