Sha256: e6ad023e266badcd75e26becb98466fe45ba2371d175d60262a7aa568bb59d7a
Contents?: true
Size: 1.16 KB
Versions: 4
Compression:
Stored size: 1.16 KB
Contents
# frozen_string_literal: true module Mutant # Stream filter for warnings class WarningFilter include Equalizer.new(:target) WARNING_PATTERN = /\A(?:.+):(?:\d+): warning: (?:.+)\n\z/.freeze # Initialize object # # @param [#write] target # # @return [undefined] def initialize(target) @target = target @warnings = [] end # Warnings captured by filter # # @return [Array<String>] attr_reader :warnings # Target stream to capture warnings on # # @return [#write] target # # @return [undefined] attr_reader :target protected :target # Write message to target filtering warnings # # @param [String] message # # @return [self] def write(message) if WARNING_PATTERN.match?(message) warnings << message else target.write(message) end self end # Use warning filter during block execution # # @return [Array<String>] def self.use original = $stderr $stderr = filter = new(original) yield filter.warnings ensure $stderr = original end end # WarningFilter end # Mutant
Version data entries
4 entries across 4 versions & 1 rubygems
Version | Path |
---|---|
mutant-0.8.24 | lib/mutant/warning_filter.rb |
mutant-0.8.23 | lib/mutant/warning_filter.rb |
mutant-0.8.22 | lib/mutant/warning_filter.rb |
mutant-0.8.21 | lib/mutant/warning_filter.rb |