Feature #3346 » __dir__.patch
eval.c | ||
---|---|---|
}
|
||
}
|
||
/*
|
||
* call-seq:
|
||
* __dir__ -> string
|
||
*
|
||
* Returns the value of <code>File.dirname(__FILE__)</code>
|
||
* If <code>__FILE__</code> is <code>nil</code>, it returns <code>nil</code>.
|
||
*
|
||
*/
|
||
static VALUE
|
||
f_current_dirname(void)
|
||
{
|
||
VALUE base = rb_current_realfilepath();
|
||
if (NIL_P(base)) {
|
||
return Qnil;
|
||
}
|
||
base = rb_file_dirname(base);
|
||
return base;
|
||
}
|
||
void
|
||
Init_eval(void)
|
||
{
|
||
... | ... | |
rb_define_global_function("__method__", rb_f_method_name, 0);
|
||
rb_define_global_function("__callee__", rb_f_callee_name, 0);
|
||
rb_define_global_function("__dir__", f_current_dirname, 0);
|
||
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);
|
test/ruby/test_method.rb | ||
---|---|---|
1000.times {p = Bug6171.new('test'); 10000.times {p.reverse}}
|
||
EOC
|
||
end
|
||
def test___dir__
|
||
assert_instance_of String, __dir__
|
||
assert_equal(File.dirname(__FILE__), __dir__)
|
||
end
|
||
end
|
- « Previous
- 1
- 2
- Next »