Project

General

Profile

Feature #6671

File.split_all and File.split_root

Added by Thomas Sawyer over 3 years ago. Updated over 3 years ago.

Status:
Assigned
Priority:
Normal
[ruby-core:45965]

Description

=begin
Is there a method for this already?

File.split_all('a/b/c') #=> ['a','b','c']

If not I propose it be added. I've had need of such more than a few times.

It's too bad that File.split can't do this, as it would make more sense. And the current method be called split_base.

In addition split_root would be helpful.

root, path = File.split_all('a/b/c')
root #=> 'a'
path #=> 'b/c'
=end

History

#1 [ruby-core:45966] Updated by Thomas Sawyer over 3 years ago

Typo in that last example, it should be split_root obviously.

#2 [ruby-core:45967] Updated by Marc-Andre Lafortune over 3 years ago

How about:

'a/b/c'.split('/') # => ['a','b','c']

And

root, _, path = 'a/b/c'.partition('/')
root  #=> 'a'
path  #=> 'b/c'

#3 [ruby-core:45970] Updated by Benoit Daloze over 3 years ago

marcandre (Marc-Andre Lafortune) wrote:

How about:

'a/b/c'.split('/') # => ['a','b','c']

And

root, _, path = 'a/b/c'.partition('/')
root  #=> 'a'
path  #=> 'b/c'

I guess that might be problematic for absolute paths:

> "/a/b/c".split '/'
=> ["", "a", "b", "c"]
> "/a/b/c".partition '/'
=> ["", "/", "a/b/c"]

Is the feature wanted Pathname#each_filename (for split_all) ?

#4 [ruby-core:46018] Updated by Thomas Sawyer over 3 years ago

Its also not so simple b/c of variation in file systems, e.g. a\b\c.

#5 [ruby-core:48382] Updated by Koichi Sasada over 3 years ago

  • Assignee set to Yusuke Endoh

mame-san: Please judge this ticket.

#6 [ruby-core:48434] Updated by Yusuke Endoh over 3 years ago

  • Assignee changed from Yusuke Endoh to Yukihiro Matsumoto
  • Status changed from Open to Assigned

I think I have no right to accept any feature.
Even if I have, I won't use the right without any particular reason.

--
Yusuke Endoh mame@tsg.ne.jp

#7 [ruby-core:48437] Updated by Yusuke Endoh over 3 years ago

  • Target version changed from 2.0.0 to next minor

Also available in: Atom PDF