Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

fastercsv error with ruby 1.9.2

I have an existing rails application I'm running on ruby 1.9.2 and linux its rails version is

rails 2.3.8

and it has a GEMFILE as well, in its vendor/gems directory it has 'fastercsv-1.5.4' gem
and in its migrations (in two migrations) it has required the gem 'fastercsv'

require 'fastercsv'

But when I do

rake db:migrate 

it fails the migration claiming

"Please switch to Ruby 1.9's standard CSV library. It's FasterCSV plus support for Ruby 1.9's m17n encoding engine."

and I have found out the message comes from gems 'faster_csv.rb' file. as it has a condition to check the ruby version

if RUBY_VERSION >= "1.9"

  class FasterCSV
    def self.const_missing(*_)
      raise NotImplementedError, "Please switch to Ruby 1.9's standard CSV "  +
                                 "library.  It's FasterCSV plus support for " +
                                 "Ruby 1.9's m17n encoding engine."
    end

    def self.method_missing(*_)
      const_missing
    end

    def method_missing(*_)
      self.class.const_missing
    end
  end

-- and more code

Can someone tell me how to fix this issue. Please note 'fastercsv' has not been added to the GEMFILE.

like image 829
sameera207 Avatar asked May 22 '11 21:05

sameera207


2 Answers

You don't need to use the FasterCSV gem with Ruby 1.9.2 as it is already included as standard library's CSV (e.g. require 'csv'). Just change references in your application from FasterCSV to CSV and remove the vendor/gems/fastercsv folder and it should Just Work(tm)

like image 72
Ryan Bigg Avatar answered Nov 10 '22 02:11

Ryan Bigg


I found the answer to my question

Its based on this post

What is Ruby 1.9 standard CSV library?

and as the solution i had to

require 'csv'

instead of

require 'fastercsv'

and change the FasterCSV to CSV

like image 18
sameera207 Avatar answered Nov 10 '22 01:11

sameera207