Skip to content

Instantly share code, notes, and snippets.

@kmdsbng
Created October 16, 2014 10:55
Show Gist options
  • Select an option

  • Save kmdsbng/14a05e201902cccfea4c to your computer and use it in GitHub Desktop.

Select an option

Save kmdsbng/14a05e201902cccfea4c to your computer and use it in GitHub Desktop.
# -*- encoding: utf-8 -*-
old_csv = <<CSV
1,aaa
2,bbb
3,ccc
4,ddd
CSV
new_csv = <<CSV
2,bbb
3,ccd
4,dde
5,eee
CSV
old_csv # => "1,aaa\n2,bbb\n3,ccc\n4,ddd\n"
new_csv # => "2,bbb\n3,ccd\n4,dde\n5,eee\n"
old_hash = {}
old_csv.each_line {|l|
id = l.split(',')[0]
old_hash[id] = l
}
old_hash # => {"1"=>"1,aaa\n", "2"=>"2,bbb\n", "3"=>"3,ccc\n", "4"=>"4,ddd\n"}
result = []
new_csv.each_line {|new_row|
new_id= new_row.split(',')[0]
old_row = old_hash[new_id]
if new_row != old_row
result << new_row
end
}
result # => ["3,ccd\n", "4,dde\n", "5,eee\n"]
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment