* ext/pathname/pathname.c (path_split): Pathname#split translated from
pathname.rb. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@29061 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
parent
b88a5027b8
commit
86b26898eb
@ -1,3 +1,8 @@
|
||||
Sat Aug 21 17:36:42 2010 Tanaka Akira <akr@fsij.org>
|
||||
|
||||
* ext/pathname/pathname.c (path_split): Pathname#split translated from
|
||||
pathname.rb.
|
||||
|
||||
Fri Aug 20 10:40:04 2010 Tanaka Akira <akr@fsij.org>
|
||||
|
||||
* ext/pathname/pathname.c (path_expand_path): Pathname#expand_path
|
||||
|
@ -510,14 +510,6 @@ class Pathname # * IO *
|
||||
end
|
||||
|
||||
|
||||
class Pathname # * File *
|
||||
|
||||
# See <tt>File.split</tt>. Returns the #dirname and the #basename in an
|
||||
# Array.
|
||||
def split() File.split(@path).map {|f| self.class.new(f) } end
|
||||
end
|
||||
|
||||
|
||||
class Pathname # * FileTest *
|
||||
|
||||
# See <tt>FileTest.blockdev?</tt>.
|
||||
|
@ -474,6 +474,23 @@ path_expand_path(int argc, VALUE *argv, VALUE self)
|
||||
return rb_class_new_instance(1, &str, rb_obj_class(self));
|
||||
}
|
||||
|
||||
/*
|
||||
* See <tt>File.split</tt>. Returns the #dirname and the #basename in an Array.
|
||||
*/
|
||||
static VALUE
|
||||
path_split(VALUE self)
|
||||
{
|
||||
VALUE str = get_strpath(self);
|
||||
VALUE ary, dirname, basename;
|
||||
ary = rb_funcall(rb_cFile, rb_intern("split"), 1, str);
|
||||
ary = rb_check_array_type(ary);
|
||||
dirname = rb_ary_entry(ary, 0);
|
||||
basename = rb_ary_entry(ary, 1);
|
||||
dirname = rb_class_new_instance(1, &dirname, rb_obj_class(self));
|
||||
basename = rb_class_new_instance(1, &basename, rb_obj_class(self));
|
||||
return rb_ary_new3(2, dirname, basename);
|
||||
}
|
||||
|
||||
/*
|
||||
* == Pathname
|
||||
*
|
||||
@ -697,4 +714,5 @@ Init_pathname()
|
||||
rb_define_method(rb_cPathname, "dirname", path_dirname, 0);
|
||||
rb_define_method(rb_cPathname, "extname", path_extname, 0);
|
||||
rb_define_method(rb_cPathname, "expand_path", path_expand_path, -1);
|
||||
rb_define_method(rb_cPathname, "split", path_split, 0);
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user