Как лучше всего разделить строку, чтобы получить все подстроки с помощью Ruby?

Например, слова «стек», я хочу чтобы получить такой массив:

['s', 'st', 'sta', ... 'stack', 't', 'ta', ... , 'c', 'ck', 'k']

Я сделал это с помощью такого кода:

def split_word(str)
  result = []
  chas = str.split("")
  len = chas.size
  (0..len-1).each do |i|
    (i..len-1).each do |j|
      result.push(chas[i..j].join)
    end
  end
  result.uniq
end

Есть ли лучший и чистый способ сделать это? Спасибо.

9
задан Jimmy Huang 22 December 2010 в 10:12
поделиться