【Ruby3.x】CSV::generate_lines()メソッドの使い方
generate_linesメソッドの使い方について、初心者にもわかりやすく解説します。
作成日: 更新日:
基本的な使い方
generate_linesメソッドは、RubyのCSVクラスに属し、CSV形式のデータを文字列として生成するメソッドです。
このメソッドは、引数として与えられた単一のデータ行(配列など)や複数の行データを受け取り、それをCSVの標準的なルールに従って整形します。特に重要な点として、生成される各CSVデータの行末には自動的に改行コード(\n)が追加されます。複数の行データが渡された場合は、それぞれの行が正しく改行で区切られた一つの文字列として結合されて返されます。
データの区切り文字(カンマ以外)や文字列を囲む引用符の扱いなど、CSVのフォーマットに関する詳細な設定は、オプションとして指定することが可能です。
generate_linesメソッドは、プログラム内で動的にCSVデータを作成し、それをファイルへの書き込み、データベースへのインポート、あるいは他のシステムへのネットワーク経由での送信など、文字列として整形されたCSVデータを必要とする様々な場面で非常に役立ちます。同じくCSV形式の文字列を生成するCSV.generateメソッドと機能は似ていますが、generate_linesは常に各行に改行コードを付与するため、行単位の区切りが明確なCSV文字列を確実に生成したい場合に特に適しています。
構文(syntax)
1require 'csv' 2 3CSV.generate_lines do |csv| 4 csv << ["ヘッダー1", "ヘッダー2"] 5 csv << ["データA", "データB"] 6end
引数(parameters)
rows, options = {}
- rows: CSVとして生成する行の配列。各行は配列またはハッシュで指定します。
- options = {}: CSV生成の挙動を制御するためのオプションハッシュ。
戻り値(return)
nil または Enumerator
CSV.generate_lines は、CSVデータを生成する際に、生成された各行を列挙する Enumerator オブジェクトを返します。すべての行が生成されるか、処理が中断された場合、nil を返します。