Ошибка в режиме flycheck Emacs с rubocop

Я использую режим flycheck с проверкой rubocop.

когда я открываю какой-то файл rb,

Checker ruby-rubocop returned non-zero exit code 1, but no errors from output: /Users/abc/.rvm/rubies/ruby-2.2.3/lib/ruby/site_ruby/2.2.0/rubygems/specification.rb:2157:in `method_missing': undefined method `this' for #<Gem::Specification:0x3fc38c8edb10 rubocop-0.35.1> (NoMethodError)
    from /Users/abc/.rvm/rubies/ruby-2.2.3/lib/ruby/site_ruby/2.2.0/rubygems/specification.rb:1056:in `find_active_stub_by_path'
    from /Users/abc/.rvm/rubies/ruby-2.2.3/lib/ruby/site_ruby/2.2.0/rubygems/core_ext/kernel_require.rb:63:in `require'
    from /Users/abc/.rvm/gems/ruby-2.2.3/gems/rubocop-0.35.1/bin/rubocop:6:in `<top (required)>'
    from /Users/abc/.rvm/gems/ruby-2.2.3/bin/rubocop:23:in `load'
    from /Users/abc/.rvm/gems/ruby-2.2.3/bin/rubocop:23:in `<main>'
    from /Users/abc/.rvm/gems/ruby-2.2.3/bin/ruby_executable_hooks:15:in `eval'
    from /Users/abc/.rvm/gems/ruby-2.2.3/bin/ruby_executable_hooks:15:in `<main>'

Checker definition probably flawed.

И режим флайчек не работает

Я также использую режим снаряд/снаряд-рельсы. Но файлы rb некоторых проектов не вызывают ошибок. Произошла ошибка в каком-то проекте.


person Jaehyun Shin    schedule 03.01.2016    source источник
comment
rubocop нормально запускается из командной строки? обычно это происходит по двум причинам: 1) у rubocop.yml есть какая-то проблема 2) вы используете rvm, если это проблема rubocop.yml, вы легко сможете увидеть это, запустив rubocop из командной строки, если это rvm, тогда вам может понадобиться rvm-use (github.com/senny/rvm.el)   -  person goromlagche    schedule 03.01.2016


Ответы (3)


Трудно сказать вам, что происходит, не видя, как это работает в командной строке.

У меня была та же ошибка, и оказалось, что я использовал более старую версию Rubocop, и FlyCheck вызывал исполняемый файл rubocop с опцией, которую он не понимал (--display-cop-names).

Поэтому запустите его из командной строки и опубликуйте результаты, а затем мы сможем попытаться диагностировать проблему.

person Howard Abrams    schedule 06.05.2016

Для чего это стоит, я видел это:

/Users/alexmoore-niemi/.rvm/rubies/ruby-2.3.0/lib/ruby/2.3.0/rubygems/specification.rb:2158:in `method_missing': undefined method `this' for #<Gem::Specification:0x3fce0dc538dc rubocop-0.47.1> (NoMethodError)
    from /Users/alexmoore-niemi/.rvm/rubies/ruby-2.3.0/lib/ruby/2.3.0/rubygems/specification.rb:1057:in `find_active_stub_by_path'
    from /Users/alexmoore-niemi/.rvm/rubies/ruby-2.3.0/lib/ruby/2.3.0/rubygems/core_ext/kernel_require.rb:64:in `require'
    from /Users/alexmoore-niemi/.rvm/gems/ruby-2.3.0/gems/rubocop-0.47.1/bin/rubocop:6:in `<top (required)>'
    from /Users/alexmoore-niemi/.rvm/gems/ruby-2.3.0/bin/rubocop:23:in `load'
    from /Users/alexmoore-niemi/.rvm/gems/ruby-2.3.0/bin/rubocop:23:in `<main>'
    from /Users/alexmoore-niemi/.rvm/gems/ruby-2.3.0/bin/ruby_executable_hooks:15:in `eval'
    from /Users/alexmoore-niemi/.rvm/gems/ruby-2.3.0/bin/ruby_executable_hooks:15:in `<main>'

Но эта проблема была только в одном из моих проектов, rubocop отлично выполнялась в другом проекте!

Итак, я удалил rubocop, запустил gem update --system, затем переустановил, и все заработало. снова в обоих проектах.

person Alex Moore-Niemi    schedule 30.01.2017

Не знаю почему, но после:

$ rubocop --auto-gen-config

в моем Rails APP_ROOT теперь все работает нормально.

person aarkerio    schedule 05.09.2020