2014/8/5 修正 名前変えた
Array#slice_indexes -> Array#slice_by_indexes
名前全然思いつかなくて仮で付けてた名前そのまま採用した。コードもきれいとはいえないと思う。やりたいことができたので一旦公開した。
何ができるのかは言葉で説明し辛いのでREADMEの内容そのまま書く。
Array#Indexes
arrayから引数に該当するindexの位置を取得してarrayで返す
require 'slice_by_indexes'
[1, 2, 3, 1, 2].indexes 1
#=> [0, 3]
["foo", "bar", "baz", "foo", "baz", "foo"].indexes "foo"
#=> [0, 3, 5]
["foo", 1, 2, "foo", 3, "foo"].indexes { |i| i.class == String }
#=> [0, 3, 5]
Array#slice_by_indexes
引数に該当する要素から次の該当する要素までを取得してarrayで返す
require 'slice_by_indexes'
[1, 2, 3, 1, 2].slice_by_indexes 1
#=> [[1, 2, 3], [1, 2]]
["foo", "bar", "baz", "foo", "baz", "foo"].slice_by_indexes "foo"
#=> [["foo", "bar", "baz"], ["foo", "baz"], ["foo"]]
["foo", 1, 2, "foo", 3, "foo"].slice_by_indexes { |i| i.class == String }
#=> [["foo", 1, 2], ["foo", 3], ["foo"]]