Feature #6671

File.split_all and File.split_root

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

Assignee:Yukihiro Matsumoto


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'


#1 Updated by Thomas Sawyer almost 3 years ago

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

#2 Updated by Marc-Andre Lafortune almost 3 years ago

How about:

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


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

#3 Updated by Benoit Daloze almost 3 years ago

marcandre (Marc-Andre Lafortune) wrote:

How about:

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


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 Updated by Thomas Sawyer over 2 years ago

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

#5 Updated by Koichi Sasada over 2 years ago

  • Assignee set to Yusuke Endoh

mame-san: Please judge this ticket.

#6 Updated by Yusuke Endoh over 2 years ago

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

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 Updated by Yusuke Endoh over 2 years ago

  • Target version changed from 2.0.0 to next minor

Also available in: Atom PDF