Issue #12026 has been updated by Jeremy Evans.


Benoit Daloze wrote:
> I think writing the warning to the screen should be part of the cutomizable behavior of that "warning processor".
> Therefore analyzing the return value is no longer necessary and it becomes more natural to redirect warnings to a file for example.

I like this idea.  So this would change the filtering example to:

~~~
$WARNING_PROCESSOR = proc do |warning|
  unless warning =~ %r{/gem_name(-[\d\.]+)?/lib/.+.rb:\d+: warning: instance variable \@\w+ not initialized\Z}
    $stderr.puts warning
  end
end
~~~

----------------------------------------
Feature #12026: Support warning filters
https://bugs.ruby-lang.org/issues/12026#change-57554

* Author: Jeremy Evans
* Status: Open
* Priority: Normal
* Assignee: 
----------------------------------------
This adds a simple way to filter warnings from being displayed. You
just set a $WARNING_FILTER with a regexp, and any warnings that
match the regexp will not be displayed.

I think this is a much simpler approach to filtering warnings than
feature #11588, while allowing the same type of capability.

This is backwards compatible, in that you can set $WARNING_FILTER in
previous versions of ruby without problems.

This should not cause any performance issues, as the regexp matching
isn't done until the warning message is about to be displayed.

It's possible to use something other than a global variable to store
the warning filter, but a global variable was the easiest way to
implement it, it has a global effect, and similar flags such as
$VERBOSE are also global variables, so I think a global variable
makes sense.

---Files--------------------------------
0001-Support-warning-filters.patch (4.12 KB)


-- 
https://bugs.ruby-lang.org/

Unsubscribe: <mailto:ruby-core-request / ruby-lang.org?subject=unsubscribe>
<http://lists.ruby-lang.org/cgi-bin/mailman/options/ruby-core>