class RdbCSV::CSV
Constants
- WRITE_BUFFER_SIZE
Public Class Methods
new(f, mode, options)
click to toggle source
# File lib/rdb_csv.rb, line 10 def initialize(f, mode, options) @f = f @mode = options[:mode] @db = options[:db] @delimiter = options[:delimiter] || "\t" @escape = "\\" @linefeed = "\n" quote = options[:quote] || '"' # quote option is valid only mysql @quote = options[:db] == :mysql ? quote : '"' end
Public Instance Methods
<<(array)
click to toggle source
# File lib/rdb_csv.rb, line 35 def <<(array) raise IOError if @mode == 'r' @lines ||= [] row = Row.new(array) line = row.join(@escape, @db, @delimiter) @lines << line + @linefeed buffer_write if @lines.size >= WRITE_BUFFER_SIZE end
buffer_write()
click to toggle source
# File lib/rdb_csv.rb, line 46 def buffer_write return if @lines.nil? || @lines.size.zero? @f.write(@lines.join) @lines = [] end
each() { |unescape| ... }
click to toggle source
# File lib/rdb_csv.rb, line 23 def each raise IOError if @mode == 'w' reader = Reader.new(@f, @db, @delimiter, escape: @escape, linefeed: @linefeed, quote: @quote) reader.each_line do |row| yield row.unescape(@escape, @db, @delimiter) end end