diff --git a/refm/api/src/_builtin.rd b/refm/api/src/_builtin.rd index 707e474768..41fd7167d3 100644 --- a/refm/api/src/_builtin.rd +++ b/refm/api/src/_builtin.rd @@ -31,6 +31,7 @@ require を書かなくても使うことができます。 #@include(_builtin/Enumerator) #@since 2.6.0 #@include(_builtin/Enumerator__ArithmeticSequence) +#@include(_builtin/Enumerator__Chain) #@end #@since 2.0.0 #@include(_builtin/Enumerator__Lazy) diff --git a/refm/api/src/_builtin/Enumerable b/refm/api/src/_builtin/Enumerable index 296ef5e9b1..97ca98f725 100644 --- a/refm/api/src/_builtin/Enumerable +++ b/refm/api/src/_builtin/Enumerable @@ -60,6 +60,19 @@ p [].any? # => false #@end +#@since 2.6.0 +--- chain(*enums) -> Enumerator::Chain + +自身と enums 引数を続けて繰り返す [[c:Enumerator::Chain]] を返します。 + +#@samplecode 例 +e = (1..3).chain([4, 5]) +e.to_a #=> [1, 2, 3, 4, 5] +#@end + +@see [[m:Enumerator#+]] +#@end + #@since 1.9.1 --- collect -> Enumerator --- map -> Enumerator diff --git a/refm/api/src/_builtin/Enumerator b/refm/api/src/_builtin/Enumerator index 8ced0523f4..7ace96f907 100644 --- a/refm/api/src/_builtin/Enumerator +++ b/refm/api/src/_builtin/Enumerator @@ -93,6 +93,19 @@ new に渡されたブロックが終了した時点で each の繰り返しが == Methods +#@since 2.6.0 +--- +(enum) -> Enumerator::Chain + +自身と enum 引数を続けて繰り返す [[c:Enumerator::Chain]] を返します。 + +#@samplecode 例 +e = (1..3).each + [4, 5] +e.to_a #=> [1, 2, 3, 4, 5] +#@end + +@see [[m:Enumerable#chain]] +#@end + --- each {...} -> object --- each -> self --- each(*args) {...} -> object diff --git a/refm/api/src/_builtin/Enumerator__Chain b/refm/api/src/_builtin/Enumerator__Chain new file mode 100644 index 0000000000..da312e9faf --- /dev/null +++ b/refm/api/src/_builtin/Enumerator__Chain @@ -0,0 +1,47 @@ += class Enumerator::Chain < Enumerator + +複数の繰り返し可能なオブジェクトを1つの Enumerator として扱うためのクラス。 + +Enumerator::Chain のオブジェクトは、[[m:Enumerable#chain]] や [[m:Enumerator#+]] から作られます。 + +== Class Methods + +--- new(*enums) -> Enumerator::Chain + +複数の Enumerable から、1つの新しい Enumerator を作って返します。 + +#@samplecode 例 +e = Enumerator::Chain.new(1..3, [4, 5]) +e.to_a #=> [1, 2, 3, 4, 5] +e.size #=> 5 +#@end + +== Instance Methods + +--- each(*args) { |*args| ...} -> object +--- each(*args) -> Enumerator + +まず最初の繰り返し可能なオブジェクトの each メソッドを +args 引数とともに呼び出した後、続く繰り返し可能なオブジェクト +も同様に呼び出します。 + +ブロックが渡されない場合は [[c:Enumerator]] を返します。 + +--- inspect -> String + +self を人間が読みやすい形式で文字列として返します。 + +--- rewind -> object + +列挙状態を巻き戻します。 + +self が持つ繰り返し可能なオブジェクトに対して、逆順で rewind メソッドを呼びます。 +ただし rewind メソッドを持たないオブジェクトに対しては rewind メソッドを呼びません。 + +--- size -> Integer | Float::INFINITY | nil + +合計の要素数を返します。 + +それぞれの列挙可能なオブジェクトのサイズの合計値を返します。 +ただし、列挙可能なオブジェクトが1つでも nil か [[m:Float::INFINITY]] +を返した場合、それを合計の要素数として返します。