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

class CSV::BasicWriter + CSV::Writer

クラスの継承リスト: CSV::BasicWriter < CSV::Writer < Object < Kernel

要約

CSVデータ書き込み時に用いられるクラス

特異メソッド

create(str_or_writable, fs = ',', rs = nil) -> CSV::BasicWriter

str_or_writable を書き込み先とする CSV::BasicWriter クラスのインスタンスを生成します。

[PARAM] str_or_writable:
CSVデータの書き込み先。このパラメータとして渡すインスタンスには<<メソッドが定義されている必要があります。
[PARAM] fs:
書き込みデータのフィールドセパレータの指定。 nil (デフォルト) で ',' をセパレータとします。
[PARAM] rs:
行区切り文字の指定。nil (デフォルト) で CrLf / Lf。 Cr を行区切りとしたい場合は ?\r を渡します。
generate(str_or_writable, fs = ',', rs = nil) -> CSV::BasicWriter
generate(str_or_writable, fs = ',', rs = nil) { |row| ... } -> nil

str_or_writable を書き込み先とする CSV::BasicWriter クラスのインスタンスを生成し、書き込み先(str_or_writable)をブロックに渡します。

[PARAM] str_or_writable:
CSVデータの書き込み先。このパラメータとして渡すインスタンスには<<メソッドが定義されている必要があります。
[PARAM] fs:
書き込みデータのフィールドセパレータの指定。 nil (デフォルト) で ',' をセパレータとします。
[PARAM] rs:
行区切り文字の指定。nil (デフォルト) で CrLf / Lf。 Cr を行区切りとしたい場合は ?\r を渡します。

例:

s = "1,2,3,4\n"
CSV::Writer.generate(s){|data|
  data << ['a', 'b', 'c']
}
p s #=> "1,2,3,4\na,b,c\n"
new(str_or_writable, fs = ',', rs = nil) -> CSV::BasicWriter

引数str_or_writableを出力先としてCSV::BasicWriterオブジェクトを生成します。

[PARAM] str_or_writable:
CSVデータの書き込み先。このパラメータとして渡すインスタンスには<<メソッドが定義されている必要があります。
[PARAM] fs:
書き込みデータのフィールドセパレータの指定。 nil (デフォルト) で ',' をセパレータとします。
[PARAM] rs:
行区切り文字の指定。nil (デフォルト) で CrLf / Lf。 Cr を行区切りとしたい場合は ?\r を渡します。

インスタンスメソッド

self << row -> CSV::BasicWriter
add_row(row) -> CSV::BasicWriter

引数で渡されたデータを1行分としてCSVデータに追加します。

[PARAM] row:
1行文として書き込み先に追加するデータ。 String あるいは Array オブジェクトである必要があります。
注意

データ追加時に""(空文字)と値なし(nil)を区別します。 例えば、["a", "", nil, "b"] の配列を渡した場合に a, "", , b という行が追加されます。

例:

csv_w = CSV::Writer.generate("")
row = [1, 2, 3]
csv_w.add_row(row)         #=> "1,2,3\n"
row = ["a", "", nil, "b"]
csv_w.add_row(row)         #=> "1,2,3\na,\"\",,b\n"
close -> nil

privateのterminateメソッドを呼び出します。

close_on_terminate -> true

本メソッドを呼び出すことで終了時にCSV::BasicWriterオブジェクトがIOクローズ処理を行います。

privateメソッド

terminate -> nil

close_on_terminateメソッドが既に呼び出されていれば、出力先(newメソッドのstr_or_writableパラメータ)のIOクローズ処理を行います。

terminate -> nil

インスタンス破棄時処理が必要な場合に再定義してください。

class CSV::BasicWriter