Rails 5.2 アプリで次の gem を使用しています。
# /Gemfile
group :development do
gem 'guard'
gem 'guard-spring'
gem 'guard-rspec'
gem 'brakeman', require: false
gem 'guard-brakeman'
# ...
end
# ...
Brakeman は Guard で問題なく動作していましたが、最近何かが変わりました。
> bundle exec guard
... usual startup trace
------ brakeman warnings --------
00:52:13 - INFO - 6 brakeman findings
00:52:13 - ERROR - Guard::Brakeman failed to achieve its <start>, exception was:
> [#8fe733251410] NoMethodError: undefined method `gsub' for #<Brakeman::FilePath:0x00007f8d0f2c9ea0>
> [#8fe733251410] /Users/me/.rvm/gems/ruby-2.5.3@myapp/gems/guard-brakeman-0.8.3/lib/guard/brakeman.rb:206:in `decorate_warning'
...
00:52:13 - INFO - Guard::Brakeman has just been fired
gem repoを見ると、このエラーが発生する行の近くにコメントがあります
/lib/guard/brakeman.rb
# ...
# line 206
output << " near line #{warning.line}" if warning.line
if warning.file
# fix this ish or wait for brakeman to be fixed
filename = warning.file.gsub(@options[:app_path], '')
# ...
他の誰かがこの問題を経験していますか? アプリを正しく構成していないため、Brakeman が Guard と連携できていませんか? それとも、宝石に問題がありますか?