Sha256: 07515f48c260ef077bebcd756db1f4426a33c4fa6850340fc91bf3d683d6e3fd

Contents?: true

Size: 731 Bytes

Versions: 1

Compression:

Stored size: 731 Bytes

Contents

# convert input to clean standard CSV
require "csv"

class Masticate::Csvify < Masticate::Base
  def initialize(filename)
    @filename = filename
  end

  def csvify(opts)
    @output = opts[:output] ? File.open(opts[:output], "w") : $stdout
    csv_options = {}
    csv_options[:col_sep] = opts[:col_sep] if opts[:col_sep]
    csv_options[:quote_char] = opts[:quote_char] || opts[:col_sep] if opts[:quote_char] || opts[:col_sep]

    @output_count = 0
    with_input do |input|
      while line = get
        row = CSV.parse_line(line, csv_options)
        emit(row.to_csv) if row
      end
    end
    @output.close if opts[:output]

    {
      :input_count => input_count,
      :output_count => @output_count
    }
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
masticate-0.1.0 lib/masticate/csvify.rb