mirror of
https://github.com/ruby/ruby.git
synced 2022-11-09 12:17:21 -05:00
* ext/pathname/pathname.c (path_realdirpath): Pathname#realdirpath
translated from pathname.rb. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@28831 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
parent
33d848d841
commit
88431b74fc
3 changed files with 21 additions and 10 deletions
|
@ -1,3 +1,8 @@
|
||||||
|
Mon Aug 2 05:34:48 2010 Tanaka Akira <akr@fsij.org>
|
||||||
|
|
||||||
|
* ext/pathname/pathname.c (path_realdirpath): Pathname#realdirpath
|
||||||
|
translated from pathname.rb.
|
||||||
|
|
||||||
Sun Aug 1 23:04:49 2010 Tanaka Akira <akr@fsij.org>
|
Sun Aug 1 23:04:49 2010 Tanaka Akira <akr@fsij.org>
|
||||||
|
|
||||||
* lib/pp.rb: describe superclasses explicitly.
|
* lib/pp.rb: describe superclasses explicitly.
|
||||||
|
|
|
@ -179,16 +179,6 @@ class Pathname
|
||||||
end
|
end
|
||||||
private :cleanpath_conservative
|
private :cleanpath_conservative
|
||||||
|
|
||||||
#
|
|
||||||
# Returns the real (absolute) pathname of +self+ in the actual filesystem.
|
|
||||||
# The real pathname doesn't contain symlinks or useless dots.
|
|
||||||
#
|
|
||||||
# The last component of the real pathname can be nonexistent.
|
|
||||||
#
|
|
||||||
def realdirpath(basedir=nil)
|
|
||||||
self.class.new(File.realdirpath(@path, basedir))
|
|
||||||
end
|
|
||||||
|
|
||||||
# #parent returns the parent directory.
|
# #parent returns the parent directory.
|
||||||
#
|
#
|
||||||
# This is same as <tt>self + '..'</tt>.
|
# This is same as <tt>self + '..'</tt>.
|
||||||
|
|
|
@ -215,6 +215,21 @@ path_realpath(int argc, VALUE *argv, VALUE self)
|
||||||
return rb_class_new_instance(1, &str, rb_obj_class(self));
|
return rb_class_new_instance(1, &str, rb_obj_class(self));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Returns the real (absolute) pathname of +self+ in the actual filesystem.
|
||||||
|
* The real pathname doesn't contain symlinks or useless dots.
|
||||||
|
*
|
||||||
|
* The last component of the real pathname can be nonexistent.
|
||||||
|
*/
|
||||||
|
static VALUE
|
||||||
|
path_realdirpath(int argc, VALUE *argv, VALUE self)
|
||||||
|
{
|
||||||
|
VALUE basedir, str;
|
||||||
|
rb_scan_args(argc, argv, "01", &basedir);
|
||||||
|
str = rb_funcall(rb_cFile, rb_intern("realdirpath"), 2, get_strpath(self), basedir);
|
||||||
|
return rb_class_new_instance(1, &str, rb_obj_class(self));
|
||||||
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* == Pathname
|
* == Pathname
|
||||||
*
|
*
|
||||||
|
@ -414,4 +429,5 @@ Init_pathname()
|
||||||
rb_define_method(rb_cPathname, "sub", path_sub, -1);
|
rb_define_method(rb_cPathname, "sub", path_sub, -1);
|
||||||
rb_define_method(rb_cPathname, "sub_ext", path_sub_ext, 1);
|
rb_define_method(rb_cPathname, "sub_ext", path_sub_ext, 1);
|
||||||
rb_define_method(rb_cPathname, "realpath", path_realpath, -1);
|
rb_define_method(rb_cPathname, "realpath", path_realpath, -1);
|
||||||
|
rb_define_method(rb_cPathname, "realdirpath", path_realdirpath, -1);
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue