@@ -9,18 +9,6 @@ static VALUE module_specs_test_method(VALUE self) {
9
9
return ID2SYM (rb_intern ("test_method" ));
10
10
}
11
11
12
- static VALUE module_specs_test_method_2required (VALUE self , VALUE arg1 , VALUE arg2 ) {
13
- return ID2SYM (rb_intern ("test_method_2required" ));
14
- }
15
-
16
- static VALUE module_specs_test_method_c_array (int argc , VALUE * argv , VALUE self ) {
17
- return ID2SYM (rb_intern ("test_method_c_array" ));
18
- }
19
-
20
- static VALUE module_specs_test_method_ruby_array (VALUE self , VALUE args ) {
21
- return ID2SYM (rb_intern ("test_method_ruby_array" ));
22
- }
23
-
24
12
static VALUE module_specs_const_defined (VALUE self , VALUE klass , VALUE id ) {
25
13
return rb_const_defined (klass , SYM2ID (id )) ? Qtrue : Qfalse ;
26
14
}
@@ -88,19 +76,25 @@ static VALUE module_specs_rb_define_method(VALUE self, VALUE cls, VALUE str_name
88
76
return Qnil ;
89
77
}
90
78
91
- static VALUE module_specs_rb_define_method_2required (VALUE self , VALUE cls , VALUE str_name ) {
92
- rb_define_method (cls , RSTRING_PTR (str_name ), module_specs_test_method_2required , 2 );
93
- return Qnil ;
79
+ static VALUE module_specs_method_var_args_1 (int argc , VALUE * argv , VALUE self ) {
80
+ VALUE ary = rb_ary_new ();
81
+ int i ;
82
+ for (i = 0 ; i < argc ; i ++ ) {
83
+ rb_ary_push (ary , argv [i ]);
84
+ }
85
+ return ary ;
94
86
}
95
87
96
- static VALUE module_specs_rb_define_method_c_array (VALUE self , VALUE cls , VALUE str_name ) {
97
- rb_define_method (cls , RSTRING_PTR (str_name ), module_specs_test_method_c_array , -1 );
98
- return Qnil ;
88
+ static VALUE module_specs_method_var_args_2 (VALUE self , VALUE argv ) {
89
+ return argv ;
99
90
}
100
91
101
- static VALUE module_specs_rb_define_method_ruby_array (VALUE self , VALUE cls , VALUE str_name ) {
102
- rb_define_method (cls , RSTRING_PTR (str_name ), module_specs_test_method_ruby_array , -2 );
103
- return Qnil ;
92
+ static VALUE module_specs_rb_define_method_1required (VALUE self , VALUE arg1 ) {
93
+ return arg1 ;
94
+ }
95
+
96
+ static VALUE module_specs_rb_define_method_2required (VALUE self , VALUE arg1 , VALUE arg2 ) {
97
+ return arg2 ;
104
98
}
105
99
106
100
static VALUE module_specs_rb_define_module_function (VALUE self , VALUE cls , VALUE str_name ) {
@@ -155,25 +149,21 @@ void Init_module_spec(void) {
155
149
rb_define_method (cls , "rb_define_module_under" , module_specs_rb_define_module_under , 2 );
156
150
rb_define_method (cls , "rb_define_const" , module_specs_define_const , 3 );
157
151
rb_define_method (cls , "rb_define_global_const" , module_specs_define_global_const , 2 );
158
- rb_define_method (cls , "rb_define_global_function" ,
159
- module_specs_rb_define_global_function , 1 );
152
+ rb_define_method (cls , "rb_define_global_function" , module_specs_rb_define_global_function , 1 );
160
153
161
154
rb_define_method (cls , "rb_define_method" , module_specs_rb_define_method , 2 );
155
+ rb_define_method (cls , "rb_define_method_varargs_1" , module_specs_method_var_args_1 , -1 );
156
+ rb_define_method (cls , "rb_define_method_varargs_2" , module_specs_method_var_args_2 , -2 );
157
+ rb_define_method (cls , "rb_define_method_1required" , module_specs_rb_define_method_1required , 1 );
162
158
rb_define_method (cls , "rb_define_method_2required" , module_specs_rb_define_method_2required , 2 );
163
- rb_define_method (cls , "rb_define_method_c_array" , module_specs_rb_define_method_c_array , 2 );
164
- rb_define_method (cls , "rb_define_method_ruby_array" , module_specs_rb_define_method_ruby_array , 2 );
165
159
166
- rb_define_method (cls , "rb_define_module_function" ,
167
- module_specs_rb_define_module_function , 2 );
160
+ rb_define_method (cls , "rb_define_module_function" , module_specs_rb_define_module_function , 2 );
168
161
169
- rb_define_method (cls , "rb_define_private_method" ,
170
- module_specs_rb_define_private_method , 2 );
162
+ rb_define_method (cls , "rb_define_private_method" , module_specs_rb_define_private_method , 2 );
171
163
172
- rb_define_method (cls , "rb_define_protected_method" ,
173
- module_specs_rb_define_protected_method , 2 );
164
+ rb_define_method (cls , "rb_define_protected_method" , module_specs_rb_define_protected_method , 2 );
174
165
175
- rb_define_method (cls , "rb_define_singleton_method" ,
176
- module_specs_rb_define_singleton_method , 2 );
166
+ rb_define_method (cls , "rb_define_singleton_method" , module_specs_rb_define_singleton_method , 2 );
177
167
178
168
rb_define_method (cls , "rb_undef_method" , module_specs_rb_undef_method , 2 );
179
169
rb_define_method (cls , "rb_undef" , module_specs_rb_undef , 2 );
0 commit comments