class CSV::FieldInfo

要約

行が読み込まれたデータソース内でのフィールドの位置の情報を格納するための構造体です。

CSV クラスではこの構造体はいくつかのメソッドのブロックに渡されます。

目次

インスタンスメソッド
header header= index index= line line=

継承しているメソッド

Structから継承しているメソッド
== [] []= dig each each_pair eql? equal? filter hash inspect length members to_a to_h values_at
Enumerableから継承しているメソッド
all? any? chunk chunk_while collect collect_concat count cycle detect drop drop_while each_cons each_entry each_slice each_with_index each_with_object entries find_index first grep grep_v group_by include? inject lazy max max_by min min_by minmax minmax_by none? one? partition reject reverse_each slice_after slice_before slice_when sort sort_by sum take take_while uniq zip

インスタンスメソッド

header -> String | nil[permalink][rdoc]

利用可能な場合はヘッダを表す文字列を返します。



require 'csv'

csv = CSV.new("date1,date2\n2018-07-09,2018-07-10", headers: true)
csv.convert do |field,field_info|
  p field_info.header
  Date.parse(field)
end
p csv.first

# => "date1"
# => "date2"
# => #<CSV::Row "date1":#<Date: 2018-07-09 ((2458309j,0s,0n),+0s,2299161j)> "date2":#<Date: 2018-07-10 ((2458310j,0s,0n),+0s,2299161j)>>
header=(val)[permalink][rdoc]

ヘッダを表す文字列をセットします。

[PARAM] val:
ヘッダを表す文字列を指定します。
index -> Integer[permalink][rdoc]

行内で何番目のフィールドかわかるゼロベースのインデックスを返します。



require 'csv'

csv = CSV.new("date1,date2\n2018-07-09,2018-07-10", headers: true)
csv.convert do |field,field_info|
  p field_info.index
  Date.parse(field)
end
p csv.first

# => 0
# => 1
# => #<CSV::Row "date1":#<Date: 2018-07-09 ((2458309j,0s,0n),+0s,2299161j)> "date2":#<Date: 2018-07-10 ((2458310j,0s,0n),+0s,2299161j)>>
index=(val)[permalink][rdoc]

インデックスの値をセットします。

[PARAM] val:
インデックスの値を指定します。
line -> Integer[permalink][rdoc]

行番号を返します。



require 'csv'

csv = CSV.new("date1,date2,date3\n2018-07-09,2018-07-10\n2018-08-09,2018-08-10", headers: true)
csv.convert do |field,field_info|
  p field_info.line
  Date.parse(field)
end
p csv.to_a

# => 2
# => 2
# => 3
# => 3
# => [#<CSV::Row "date1":#<Date: 2018-07-09 ((2458309j,0s,0n),+0s,2299161j)> "date2":#<Date: 2018-07-10 ((2458310j,0s,0n),+0s,2299161j)> "date3":nil>, ...]
line=(val)[permalink][rdoc]

行番号をセットします。

[PARAM] val:
行番号を指定します。