class EasyCSV::Builder
Attributes
data[RW]
file_path[RW]
separator[RW]
wrapper[RW]
Public Class Methods
build(&block)
click to toggle source
# File lib/easycsv/builder.rb, line 6 def self.build(&block) builder = new builder.instance_eval(&block) builder.build end
new()
click to toggle source
# File lib/easycsv/builder.rb, line 12 def initialize @data = Data.new @wrapper = DoubleQuoteWrapper @separator = ComaSeparator end
Public Instance Methods
build()
click to toggle source
# File lib/easycsv/builder.rb, line 18 def build File.open(@file_path, "w") do |f| f.write header_row f.write data_rows end end
method_missing(m, *args, &block)
click to toggle source
# File lib/easycsv/builder.rb, line 33 def method_missing(m, *args, &block) @data.send(m, *args, &block) end
set_column_separator(separator)
click to toggle source
# File lib/easycsv/builder.rb, line 25 def set_column_separator(separator) @separator = separator end
set_path(path)
click to toggle source
# File lib/easycsv/builder.rb, line 29 def set_path(path) @file_path = path end
Private Instance Methods
build_row(r)
click to toggle source
# File lib/easycsv/builder.rb, line 47 def build_row(r) row = @data.calls.map{|c| r.send(c)} separate( wrap(row) ) end
data_rows()
click to toggle source
# File lib/easycsv/builder.rb, line 43 def data_rows @data.rows.map{|r| build_row(r)}.join "\n" end
header_row()
click to toggle source
# File lib/easycsv/builder.rb, line 39 def header_row separate( wrap(@data.headers) ) + "\n" end
separate(row)
click to toggle source
# File lib/easycsv/builder.rb, line 56 def separate(row) @separator.new(row).separate end
wrap(row)
click to toggle source
# File lib/easycsv/builder.rb, line 52 def wrap(row) @wrapper.new(row).wrap end