Skip to content

Instantly share code, notes, and snippets.

@trotter
Created February 19, 2009 00:16
Show Gist options
  • Save trotter/66628 to your computer and use it in GitHub Desktop.
Save trotter/66628 to your computer and use it in GitHub Desktop.
require 'rubygems'
require 'fastercsv'
require 'ruby-debug'
data = FasterCSV.read(ARGV[0], :headers => :first_row)
columns = %w( PCI5 PCI6 PCI7 PCI9 PCI11 PCI13
PCI15 PCI21 PCI24
)
headers_extra = columns.map { |col| "p_#{col}" }
puts (data.headers + headers_extra).join(',')
previous_row = nil
data.each do |row|
if previous_row && row['subID'] =~ /^ *$/
line_one_extra = columns.map {|col| row[col]}
line_two_extra = columns.map {|col| previous_row[col]}
puts (previous_row.fields + line_one_extra).map{|col| %Q["#{col}"]}.join(',')
puts (row.fields + line_two_extra).map{|col| %Q["#{col}"]}.join(',')
elsif previous_row && previous_row['subID'] !~ /^ *$/
bogus_line_extra = columns.map {|col| ' '}
puts (previous_row.fields + bogus_line_extra).map{|col| %Q["#{col}"]}.join(',')
end
previous_row = row
end
if previous_row['subID'] !~ /^ *$/
bogus_line_extra = columns.map {|col| ' '}
puts (previous_row.fields + bogus_line_extra).map{|col| %Q["#{col}"]}.join(',')
end
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment