Инсталирал съм английския речник от http://aspell.net/win32/ Получавам следния проблем :
Проблем с ffi и речник
Темата е коментирана тук. А накратко : Aspell за Windows работи само с x32 битова версия на Ruby. Това ли е проблема ?
С 32 битовата съм.
Аз имах същия проблем още при първа задача когато трябваше да изпълним следния ред
skeptic --lines-per-method 5 --line-length 80 --max-nesting-depth 2 --methods-per-class 8 --no-semicolons --no-trailing-whitespace --check-syntax --no-global-variables --english-words-for-names='fibonacci lucas' --naming-conventions solution.rb
. Тогава видях коментара на @Яни в тази тема, премахнах--english-words-for-names='fibonacci lucas'
и skeptic заработи без проблем. Сега при опит да изпълняbundle exec rake check
отново ми се показа същата грешка, затова от skeptic.yml файла изтрих всички срещания наenglish_words_for_names:
и проблемът беше отстранен. Не знам до колко е ОК да променям skeptic.yml файла, затова ако някой има друго решение на проблема - нека го сподели.@Габриела, не, не е добра идея да променяш
skeptic.yml
. Трябва да бъде във вида, в който сме го commit-нали ние. Ако имаш проблеми със Skeptic и aspell, виж тази тема и ако тя не помогне, пиши там какъв ти е проблемът.@Александър, грешката, която виждам, е: "Тhe used dictionary "en_US" is not available." Това ме навежда на мисълта, че Aspell при теб работи.
Какво ти показва
aspell dicts
командата? Виж какво вади при мен.Разгледай readme-то на ffi-aspell gem-а. Пробвай го в irb. Пробвай да дебъгнеш проблема.
@Александър, какво ти показва следният код, изпълнен, например, в
irb
:require 'ffi/aspell' p FFI::Aspell::VERSION p FFI::Aspell::Speller.new.send(:available_dictionaries)
Ако
available_dictionaries
не съществува, пробвай ръчно този код. Пробвай иgem update ffi-aspell
, за да си сложиш последната версия на gem-а.@Димитър
irb(main):001:0> require 'ffi/aspell' => true
irb(main):002:0> irb(main):003:0* p FFI::Aspell::VERSION "1.0.2" => "1.0.2"
irb(main):004:0> p FFI::Aspell::Speller.new.send(:available_dictionaries) ArgumentError: The used dictionary "en_US" is not available from D:/progams/Ruby/Ruby21/lib/ruby/gems/2.1.0/gems/ffi-aspell-1.0.2/li b/ffi/aspell/speller.rb:420:in
check_dictionary' from D:/progams/Ruby/Ruby21/lib/ruby/gems/2.1.0/gems/ffi-aspell-1.0.2/li b/ffi/aspell/speller.rb:439:in
update_speller' from D:/progams/Ruby/Ruby21/lib/ruby/gems/2.1.0/gems/ffi-aspell-1.0.2/li b/ffi/aspell/speller.rb:162:ininitialize' from (irb):4:in
new' from (irb):4 from D:/progams/Ruby/Ruby21/bin/irb:11:in `'При опит за ъпдейт връща "nothing to update".
А кода ми дава проблем unitialized constant Aspell. Ще прочета readme-то и пак ще пробвам.
@Александър,
uninitialized constant Aspell
се получава, защотоAspell
е в модулаFFI
.А за обновяването на gem-а - моя грешка, командата е
gem install ffi-aspell
.@Александър, в краен случай, деактивирай (коментирай)
english_words_for_names: ...
вskeptic.yml
, за да може да ти минават другите проверки и се постарай да използваш правилни английски имена :)Ако имаш спешни въпроси, пиши на fmi@ruby.bg, за да го видим по-бързо.
Трябва да сте влезли в системата, за да може да отговаряте на теми.