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

class CSV::IOBuf + CSV::StreamBuf

クラスの継承リスト: CSV::IOBuf < CSV::StreamBuf < Object < Kernel

要約

IOのバッファリングを実現するクラス

特異メソッド

new(s) -> self

インスタンスを生成します。

[PARAM] s:
バッファリングするIOのオブジェクト
new -> self

CSV::StreamBufオブジェクトを生成します。

注意
  • このメソッドを用いてCSV::StreamBufクラスのオブジェクトを生成しないで下さい。 必ず、CSV::StreamBufクラスを継承したクラスからインスタンス生成してください。
  • 本メソッドからreadメソッドを呼び出すため、派生クラスではインスタンスメソッドreadを定義してください。

インスタンスメソッド

self[idx, n = nil] -> String

ストリームバッファから部分文字列を取り出します。

[PARAM] idx:
取り出す部分文字列のスタート位置
[PARAM] n:
部分文字列のサイズ
close -> nil

オブジェクト終了(破棄)処理を行います。

内部的には、terminateメソッドを呼び出します。

drop(n) -> Fixnum

ストリームからデータを削除します。

引数で与えられたサイズのデータをストリームの先頭から削除します。 実際に削除されたデータサイズを戻り値として返します。

[PARAM] n:
削除するデータのサイズ
注意

返り値として返す値は実際に削除したデータサイズと異なることがあることに注意すこと。

is_eos? -> bool

ストリームの終端かどうかをtrue/falseで返します。

read(size) -> []

NotImplementedError例外を発生させます。

CSV::StreamBuf クラスを継承した場合は必ず、readメソッドをオーバーライドして下さい。 その際の注意点として読み込み時に EndOfStream を検出した場合には nil を返してください。

terminate -> nil

ストリームの解放処理を行います。 本メソッドはその他のメソッドの内部から呼ばれます。

privateメソッド

add_buf -> bool

ストリームバッファからデータを読み込み、true/falseを返します。

[RETURN]
データの読み込みに成功した場合にはtrueを、読み込み失敗した場合にはfalseを返します。
buf_size(idx) -> Fixnum

idxで指定したバッファのデータサイズを取得します。

[PARAM] idx:
サイズを取得するデータのインデックス
idx_is_eos?(idx)

引数idxで指定した位置がストリームの終端かどうかを判定します。

[PARAM] idx:
判定を行う位置インデックス
read(size) -> ()

バッファリングしたデータの読み出しを行います。

[PARAM] size:
読み出しデータサイズ
rel_buf -> bool

現在処理中のストリームバッファを解放する。

[RETURN]
次のバッファが存在する場合にはtrueを、読み込み済みのバッファが存在しない場合にはfalseを返します。
terminate -> nil

オブジェクトの破棄処理を行います。

親クラスのCSV::StreamBuf#terminateを呼び出します。

定数

BufSize

ストリームバッファの1回の読み込みデータサイズ 1024 * 8 = 8192

class CSV::IOBuf