Ran into an issue with a rails 3.0 app which I had running on ruby 1.9 and am now getting to run on ruby 1.8. The app pulls in data from some CSV files and used the CSV library in ruby 1.9. All the CSV data imports failed under ruby 1.8. A little research showed that this is because CSV in ruby 1.9 was FasterCSV in ruby 1.8, and the CSV class in ruby 1.8 was something completely different. So I got around this by doing the following:
Add a conditional include of fastercsv to the Gemfile:
gem 'fastercsv', :platforms => :ruby_18
And then where I want to perform CSV operations, I do the following:
if CSV.const_defined? :Reader
csv = FasterCSV
csv = CSV
csv.foreach(path) do |row|
Thanks to http://blog.grayproductions.net/articles/getting_code_ready_for_ruby_19 for the conditional.
Also handy, since the app is running on both windows and linux was the following:
path = File.join(CSV_PATH, 'file.csv')
Hope this helps.