Что такое метод Мой код должен анализировать Vcard 2.1 формат
Я использую vpim (других библиотек нет) При запуске StackTrace: Я пытался запустить (класс исключения - Код Vcard, который я пытаюсь выполнить синтаксический анализ: Интересно, что вторая ошибка возникает, когда я Я декодирую внутри модели Rails.
Когда я пытаюсь декодировать напрямую из скрипта / консоли (после установки vcard gem и напрямую, включая vcard), я успешно получаю объект Vcard. StackTrace: app / models / event.rb: 71: Здесь это пример из irb: Как можно проанализировать Vcard 2.1 в рельсах? getCSSCanvasContext ()
? Я видел это в консоли отладки Chrome, но не могу найти для этого достойной документации.
Я использую vpim (других библиотек нет) Когда я запускаю Vpim :: Vcard.decode (data), я получаю сообщение об ошибке: неопределенный метод `each 'для # Vpim :: Vcard.decode (data)
я получаю сообщение об ошибке: undefined method `each' for #<String:0x0000000928e778>
NoMethodError (undefined method `each' for #<String:0x0000000928e778>):
vpim (0.695) lib/vpim/rfc2425.rb:82:in `unfold'
vpim (0.695) lib/vpim/rfc2425.rb:308:in `decode'
vpim (0.695) lib/vpim/vcard.rb:692:in `decode'
app/models/event.rb:71:in `block (2 levels) in parse_data'
gem install vcard
и требовать директорию 'vcard' (config.gem не включает этот файл после vpim gem) после инициализации RailsApp. ( config.gem 'vpim'
включен в environment.rb )
Таким образом я получаю еще одну ошибку: ; = D0 = 9D = D0 = B0 = D0 = B4 = D1 = 80 = D0 = B0 = 20 = D0 = B1 = D0 = B0 = D0 = BD = D0 = BA = 20 = D0 = BE = D0 = BB =
Vpim :: InvalidEncodingError
) BEGIN:VCARD
VERSION:2.1
REV:20090710T151929Z
TEL;CELL:80954130722
X-CLASS:private
END:VCARD
Vpim::InvalidEncodingError (;=D0=9D=D0=B0=D0=B4=D1=80=D0=B0=20=D0=B1=D0=B0=D0=BD=D0=BA=20=D0=BE=D0=BB=):
vcard (0.1.1) lib/vcard/field.rb:106:in `decode0'
vcard (0.1.1) lib/vcard/field.rb:172:in `initialize'
vcard (0.1.1) lib/vcard/field.rb:183:in `new'
vcard (0.1.1) lib/vcard/field.rb:183:in `decode'
vcard (0.1.1) lib/vcard/rfc2425.rb:308:in `block in decode'
vcard (0.1.1) lib/vcard/rfc2425.rb:308:in `collect'
vcard (0.1.1) lib/vcard/rfc2425.rb:308:in `decode'
vcard (0.1.1) lib/vcard/vcard.rb:686:in `decode'
app/models/event.rb:71:in `block (2 levels) in parse_data'
vcard = Vpim::Vcard.decode(contact.text)
95-25-164-74:~ smix$ irb
ruby-1.9.2-rc2 > str = <<EOS
ruby-1.9.2-rc2"> BEGIN:VCARD
ruby-1.9.2-rc2"> VERSION:2.1
ruby-1.9.2-rc2"> REV:20090710T151929Z
ruby-1.9.2-rc2"> TEL;CELL:80954130722
ruby-1.9.2-rc2"> X-CLASS:private
ruby-1.9.2-rc2"> END:VCARD
ruby-1.9.2-rc2"> EOS
=> "BEGIN:VCARD\nVERSION:2.1\nREV:20090710T151929Z\nTEL;CELL:80954130722\nX-CLASS:private\nEND:VCARD\n"
ruby-1.9.2-rc2 > require 'vpim'
=> true
ruby-1.9.2-rc2 > Vpim::Vcard.decode str
NoMethodError: undefined method `each' for #<String:0x000001010e0428>
from /Users/smix/.rvm/gems/ruby-1.9.2-rc2/gems/vpim-0.695/lib/vpim/rfc2425.rb:82:in `unfold'
from /Users/smix/.rvm/gems/ruby-1.9.2-rc2/gems/vpim-0.695/lib/vpim/rfc2425.rb:308:in `decode'
from /Users/smix/.rvm/gems/ruby-1.9.2-rc2/gems/vpim-0.695/lib/vpim/vcard.rb:692:in `decode'
from (irb):10
from /Users/smix/.rvm/rubies/ruby-1.9.2-rc2/bin/irb:17:in `<main>'
ruby-1.9.2-rc2 >