Ответ с наибольшим количеством голосов работает, но есть несколько более короткий способ сделать это, который, я думаю, будет более читабельным для тех, кто не знаком со всеми используемыми там функциями:
a=[]; s.scan(/\/|$/){a << $`}
Результат сохраняется в a
:
> s = 'abc/def/ghi'
> a=[]; s.scan(/\/|$/){a << $`}
> a
["abc", "abc/def", "abc/def/ghi"]
Если порядок важен, вы можете изменить массив или использовать unshift
вместо <<
.
Спасибо dkubb и ОП за улучшения этого ответа.