Sha256: 41d34fc63c746317383e6b7f037c0262597baf95586cc4e1cd974dbb4b884b8a

Contents?: true

Size: 1.24 KB

Versions: 3

Compression:

Stored size: 1.24 KB

Contents

require 'jsduck/warning/warn_exception'

module JsDuck
  module Warning

    # A basic warning type.
    class Basic

      # Creates a simple warning with a message text.
      # The warning is disabled by default.
      def initialize(type, msg)
        @type = type
        @msg = msg
        @enabled = false
        @patterns = []
      end

      # Enables or disables the warning.
      # Optionally enables/disables it for files matching a path_pattern.
      def set(enabled, path_pattern=nil, params=[])
        if path_pattern
          if @enabled == enabled
            raise WarnException, "Warning rule '#{enabled ? '+' : '-'}#{@type}:#{path_pattern}' has no effect"
          else
            @patterns << Regexp.new(Regexp.escape(path_pattern))
          end
        else
          @enabled = enabled
          @patterns = []
        end
      end

      # True when warning is enabled for the given filename.
      # (The params parameter is ignored).
      def enabled?(filename="", params=[])
        if @patterns.any? {|re| filename =~ re }
          !@enabled
        else
          @enabled
        end
      end

      # Documentation for the warning.
      def doc
        " #{@enabled ? '+' : '-'}#{@type} - #{@msg}"
      end

    end

  end
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
jsduck-5.3.1 lib/jsduck/warning/basic.rb
jsduck-5.3.0 lib/jsduck/warning/basic.rb
jsduck-5.2.0 lib/jsduck/warning/basic.rb