extend: Forwardable
要約
CSV::Row は配列やハッシュのように似ています。
配列のようにフィールドの順序を保持していて、複製する事もできます。また、ハッシュのように名前でフィールドにアクセスする事もできます。
ヘッダ行の処理が有効である場合は CSV から返される全ての行はこのクラスのインスタンスです。
以下のメソッドを Array に委譲します。
- empty?()
- length()
- size()
目次
- 特異メソッド
- インスタンスメソッド
- protectedメソッド
継承しているメソッド
- Enumerableから継承しているメソッド
-
- all?
- any?
- chunk
- collect
- collect_concat
- count
- cycle
- detect
- drop
- drop_while
- each_cons
- each_entry
- each_slice
- each_with_index
- each_with_object
- entries
- find
- find_all
- find_index
- first
- flat_map
- grep
- group_by
- inject
- lazy
- map
- max
- max_by
- member?
- min
- min_by
- minmax
- minmax_by
- none?
- one?
- partition
- reduce
- reject
- reverse_each
- select
- slice_before
- sort
- sort_by
- take
- take_while
- to_a
- zip
特異メソッド
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]
- 引数を与えなかった場合は全ての要素を返します。
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) -> Fixnum[permalink][rdoc]-
与えられたヘッダの名前に対応するインデックスを返します。
- [PARAM] header:
- ヘッダの名前を指定します。
- [PARAM] minimum_index:
- このインデックスより後で、ヘッダの名前を探します。重複しているヘッダがある場合に便利です。
[SEE_ALSO] CSV::Row#field
inspect -> String[permalink][rdoc]-
ASCII 互換であるエンコーディングの文字列で自身の情報を返します。
length -> Fixnum[permalink][rdoc]size -> Fixnum-
Array#length, Array#size に委譲します。
push(*args) -> self[permalink][rdoc]-
複数のフィールドを追加するためのショートカットです。
以下とおなじです:
args.each { |arg| csv_row << arg }- [RETURN]
- メソッドチェーンのために自身を返します。
to_csv -> String[permalink][rdoc]to_s -> String-
自身を CSV な文字列として返します。ヘッダは使用しません。
to_hash -> Hash[permalink][rdoc]-
自身をシンプルなハッシュに変換します。
フィールドの順序は無視されます。重複したフィールドは削除されます。
protectedメソッド
row -> Array[permalink][rdoc]-
同値性を比較するために使用する内部的なデータです。