Що таке стандартна бібліотека CSV Ruby 1.9?


77

Коли я спробую дорогоцінний камінь FasterCSV у своїй програмі, я отримую таку помилку:

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

До речі, я використовую Rails 3, Ruby 1.9.2 та Rubygems 1.4.

Хтось може пояснити мені, будь ласка, як користуватися стандартною бібліотекою CSV для Ruby 1.9. Я взагалі не маю ідеї, бо я дуже новачок у Rails.

Відповіді:


140

Ruby 1.9 прийняв FasterCSV як свою вбудовану бібліотеку CSV. Однак він знаходиться в стандартній бібліотеці, а не в ядрі Ruby 1.9, тому вам потрібно вручну вимагати його у своєму додатку.

Після додавання a

require 'csv'

до свого коду, ви можете робити такі речі, як

CSV.parse("this,is,my,data")

Див Ruby 1.9 в стандартній бібліотеці CSV документації для отримання інформації про використання бібліотеки.


Дуже дякую. Як би я не хотів проголосувати за вашу відповідь, але система каже мені мати щонайменше 15 репутацію. Що означають параметри в CSV.parse ("це, є, мої дані")? Я знаю, це занадто багато, щоб запитати, але я справді новачок у рубіні на рейках.
— Джохан,

3
ті НЕ параметри ... це просто приклад , він дає рядка «це, це мій, дані» , що розбирається
— JPW

Дуже дякую. Все, що я думав, це параметри. Я вже вирішив проблему. Я вже знаю, як імпортувати дані CSV у Ruby 1.9.2.
— Джохан

-6

Подивіться, як я вирішив цю проблему!

require 'fastercsv'
require 'csv'

secrecy_levels_array = [['SUPERSECRET', 'Supersecret Data', "Tell No One"],
['SEMISECRET', 'Semisecret Data', 'Tell Some People'],
['UNSECRET', 'Unsecret Data', 'Tell Everyone']]

puts '\n'
secrecy_levels_array.each do |line|
  puts line.to_csv
end

4
-1 Ви навіть не потрудились зрозуміти існуюче трирічне запитання та відповідь перед публікацією. Якщо ви заходите через три роки, ваша відповідь повинна бути більш сучасною, але це не так.
— Марк Томас
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.