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

class CSV::Row

クラスの継承リスト: CSV::Row < Enumerable < Object < Kernel < BasicObject
extend: Forwardable

要約

CSV::Row は配列やハッシュのように似ています。

配列のようにフィールドの順序を保持していて、複製する事もできます。 また、ハッシュのように名前でフィールドにアクセスする事もできます。

ヘッダ行の処理が有効である場合は CSV から返される全ての行はこのクラスのインスタンスです。

以下のメソッドを Array に委譲します。

目次

特異メソッド
new
インスタンスメソッド
<< == [] field []= delete delete_if each empty? field? field_row? fields values_at header? include? header_row? headers index inspect length size push row to_csv to_s to_hash

特異メソッド

new(headers, fields, header_row = false) -> CSV::Row[permalink][rdoc]

自身を初期化します。

一方の配列が他方の配列よりも短い場合、不足しているところは nil になります。

[PARAM] headers:
ヘッダの配列を指定します。
[PARAM] fields:
フィールドの配列を指定します。
[PARAM] header_row:
ヘッダ行である場合は真を指定します。そうでない場合は偽を指定します。 デフォルトは偽です。

[SEE_ALSO] CSV::Row#header_row?, CSV::Row#field_row?

インスタンスメソッド

self << arg -> self[permalink][rdoc]

自身に与えられたデータを追加します。

[PARAM] arg:
2 要素の配列か 1 要素のハッシュか任意のオブジェクトを指定します。 2 要素の配列を与えた場合は、ヘッダとフィールドのペアを追加します。 1 要素のハッシュを与えた場合は、キーをヘッダ、値をフィールドとして追加します。 それ以外の場合は、ヘッダを nil 、フィールドを与えられた値として追加します。
[RETURN]
メソッドチェーンのために自身を返します。
self == other -> bool[permalink][rdoc]

自身が other と同じヘッダやフィールドを持つ場合に真を返します。 そうでない場合は偽を返します。

[PARAM] other:
比較対象の CSV::Row のインスタンスを指定します。
field(header_or_index, minimum_index = 0) -> object | nil[permalink][rdoc]
self[header_or_index, minimum_index = 0] -> object | nil

ヘッダの名前かインデックスで値を取得します。フィールドが見つからなかった場合は nil を返します。

[PARAM] header_or_index:
ヘッダの名前かインデックスを指定します。
[PARAM] minimum_index:
このインデックスより後で、ヘッダの名前を探します。 重複しているヘッダがある場合に便利です。
self[header_or_index] = value[permalink][rdoc]

ヘッダの名前かインデックスでフィールドを探し、値をセットします。

末尾より後ろのインデックスを指定すると、ヘッダの名前は nil になります。 存在しないヘッダを指定すると、新しい要素を末尾に追加します。

[PARAM] header_or_index:
ヘッダの名前かインデックスを指定します。
[PARAM] value:
値を指定します。

[SEE_ALSO] CSV::Row#field

self[header, offset] = value[permalink][rdoc]

ヘッダの名前でフィールドを探し、値をセットします。

[PARAM] header:
ヘッダの名前を指定します。
[PARAM] offset:
このインデックスより後で、ヘッダの名前を探します。 重複しているヘッダがある場合に便利です。
[PARAM] value:
値を指定します。

[SEE_ALSO] CSV::Row#field

delete(header_or_index, minimum_index = 0) -> [object, object] | nil[permalink][rdoc]

ヘッダの名前かインデックスで行からフィールドを削除するために使用します。

[PARAM] header_or_index:
ヘッダの名前かインデックスを指定します。
[PARAM] minimum_index:
このインデックスより後で、ヘッダの名前を探します。 重複しているヘッダがある場合に便利です。
[RETURN]
削除したヘッダとフィールドの組を返します。削除対象が見つからなかった場合は nil を返します。

[SEE_ALSO] CSV::Row#field

delete_if {|header, field| ... } -> self[permalink][rdoc]

与えられたブロックにヘッダとフィールドのペアを渡して評価します。 評価した結果が真である場合に、その組を自身から削除します。

[RETURN]
メソッドチェーンのために自身を返します。
each {|header, field| ... } -> self[permalink][rdoc]

与えられたブロックにヘッダとフィールドの組を渡して評価します。

[RETURN]
メソッドチェーンのために自身を返します。
empty? -> bool[permalink][rdoc]

内部で保持している @row へ委譲します。

field?(data) -> bool[permalink][rdoc]

自身に与えられた値が含まれている場合は真を返します。 そうでない場合は偽を返します。

[PARAM] data:
この行に含まれているかどうか調べたい値を指定します。
field_row? -> bool[permalink][rdoc]

フィールド行であれば真を返します。そうでなければ偽を返します。

fields(*headers_and_or_indices) -> Array[permalink][rdoc]
values_at(*headers_and_or_indices) -> Array

与えられた引数に対応する値の配列を返します。

要素の探索に CSV::Row.field を使用しています。

[PARAM] headers_and_or_indices:
ヘッダの名前かインデックスか Range のインスタンスか第 1 要素がヘッダの名前で 第 2 要素がオフセットになっている 2 要素 の配列をいくつでも指定します。混在するこ とができます。
[RETURN]
引数を与えなかった場合は全ての要素を返します。
require 'csv'
csv = CSV.new("a,b,c\n1,2,3", headers: true)
table = csv.read
row = table.first
row.values_at("a", 1, 2..3) # => ["1", "2", "3", nil]
header?(name) -> bool[permalink][rdoc]
include?(name) -> bool

自身のヘッダに与えられた値が含まれている場合は真を返します。 そうでない場合は偽を返します。

[PARAM] name:
この行のヘッダに含まれているかどうか調べたい値を指定します。
header_row? -> bool[permalink][rdoc]

ヘッダ行であれば真を返します。そうでなければ偽を返します。

headers -> Array[permalink][rdoc]

この行のヘッダのリストを返します。

index(header, minimum_index = 0) -> Integer[permalink][rdoc]

与えられたヘッダの名前に対応するインデックスを返します。

[PARAM] header:
ヘッダの名前を指定します。
[PARAM] minimum_index:
このインデックスより後で、ヘッダの名前を探します。 重複しているヘッダがある場合に便利です。

[SEE_ALSO] CSV::Row#field

inspect -> String[permalink][rdoc]

ASCII 互換であるエンコーディングの文字列で自身の情報を返します。

length -> Integer[permalink][rdoc]
size -> Integer

Array#length, Array#size に委譲します。

push(*args) -> self[permalink][rdoc]

複数のフィールドを追加するためのショートカットです。

以下とおなじです:

args.each { |arg| csv_row << arg }
[RETURN]
メソッドチェーンのために自身を返します。
row -> Array[permalink][rdoc]

同値性を比較するために使用する内部的なデータです。

to_csv -> String[permalink][rdoc]
to_s -> String

自身を CSV な文字列として返します。ヘッダは使用しません。

to_hash -> Hash[permalink][rdoc]

自身をシンプルなハッシュに変換します。

フィールドの順序は無視されます。 重複したフィールドは削除されます。