class Object

Public Instance Methods

run() click to toggle source
# File bin/cutcsv, line 49
def run
  inputs = params[:files].values
  inputs = [STDIN] unless inputs.length > 0

  fields = if params[:fields].given?
             params[:fields].value
           else
             :all
           end

  inputs.each do |input|
    unless input.respond_to?(:gets)
      input = File.open(input, 'r')
    end

    CSV.new(input).each do |row|
      csv_row = []

      row.each_with_index do |column, index|
        field_number = index + 1

        next unless fields == :all || fields.include?(field_number)

        csv_row << column
      end

      puts CSV.generate_line(csv_row)
    end
  end
end