Ruby 2.3.0 リファレンスマニュアル > ライブラリ一覧 > csvライブラリ > CSV::Tableクラス > by_row

instance method CSV::Table#by_row

by_row -> CSV::Table[permalink][rdoc]

ロウモードになっている新しい CSV::Table オブジェクトを返します。

元のテーブルモードを変更せずにメソッドチェーンできるので便利です。しか し、大きなデータセットに対しても同じだけメモリを消費するので気をつけて ください。

このメソッドは複製したテーブルを返すので、破壊的なメソッドはメソッド チェーンに組込まないようにしてください。



require "csv"

row1 = CSV::Row.new(["header1", "header2"], ["row1_1", "row1_2"])
row2 = CSV::Row.new(["header1", "header2"], ["row2_1", "row2_2"])
table = CSV::Table.new([row1, row2])
table         # => #<CSV::Table mode:col_or_row row_count:3>
row_table = table.by_row  # => #<CSV::Table mode:row row_count:3>
row_table[0] # => #<CSV::Row "header1":"row1_1" "header2":"row1_2">
row_table[1] # => #<CSV::Row "header1":"row2_1" "header2":"row2_2">