diff --git a/lib/ruby_warning_filter.rb b/lib/ruby_warning_filter.rb index 08e0d0f..d6d8057 100644 --- a/lib/ruby_warning_filter.rb +++ b/lib/ruby_warning_filter.rb @@ -63,13 +63,29 @@ def ruby_warning?(line) end def ignored_warning?(line) - external_warning?(line) || ignored_template_warning?(line) + external_warning?(line) || + ignored_template_warning?(line) || + internal_warning?(line) end def external_warning?(line) @ignore_path.any?{ |path| line.start_with?(path) } end + # Since bundler 2.4.6 there are some changes + # before: + # /home/user/.rbenv/gems/ruby-3.1.5/gems/bootsnap-1.13.0/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:32 + # warning: /home/user/.rbenv/gems/ruby-3.1.5/gems/bootsnap-1.13.0/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:32: + # warning: loading in progress, circular require considered harmful - /home/user/.rbenv/gems/ruby-3.1.5/gems/bugsnag-6.26.3/lib/bugsnag.rb + # after: + # :37: + # warning: :37: + # warning: loading in progress, circular require considered harmful - /home/user/.rbenv/gems/ruby-3.1.5/gems/bugsnag-6.26.3/lib/bugsnag.rb + def internal_warning?(line) + gem_path = line.split(/\n/).first.split(' ').last + @ignore_path.any?{ |path| line.start_with?(':319: warning: loading in progress, circular require considered harmful - /path/to/ruby/2.2.0/gems/bugsnag-6.26.3/lib/bugsnag.rb\n" + + # in app + @err.write ":319: warning: loading in progress, circular require considered harmful - /path/to/app.rb\n" + + @err.write "something other\n" + + assert_equal \ + ":319: warning: loading in progress, circular require considered harmful - /path/to/app.rb\n"\ + "something other\n", + @err.string + + assert_equal 1, @err.ruby_warnings + end end