Sha256: 8c13c5d0bbdf3c77f2e8e8f4d75468f8f09a5b9bda73f743650c573b9eacbcaa

Contents?: true

Size: 1.6 KB

Versions: 17

Compression:

Stored size: 1.6 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

        @rules = []
        # disable by default
        set(false)
      end

      # Enables or disables the warning.
      # Optionally enables/disables it for files matching a path_pattern.
      # params array is not used for the basic warning type.
      def set(enabled, path_pattern=nil, params=[])
        if path_pattern
          # Prepend to the front of array, so we can use #find to
          # search for the latest rule.
          @rules.unshift({
            :enabled => enabled,
            :path_re => Regexp.new(Regexp.escape(path_pattern))
          })
        else
          # When no path specified, the warning is turned on/off
          # globally, so we can discard all the existing rules and
          # start over with just one.
          @rules = [{
            :enabled => enabled,
            :path_re => nil
          }]
        end
      end

      # True when warning is enabled for the given filename.
      # (The params parameter is ignored).
      def enabled?(filename="", params=[])
        # Find the most recently added rule that has an effect to our current item
        @rules.find {|r| r[:path_re].nil? || r[:path_re] =~ filename }[:enabled]
      end

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

    end

  end
end

Version data entries

17 entries across 17 versions & 3 rubygems

Version Path
solvas-jsduck-6.0.0.30539 lib/jsduck/warning/basic.rb
solvas-jsduck-6.0.0.9571 lib/jsduck/warning/basic.rb
solvas-jsduck-6.0.0.6154 lib/jsduck/warning/basic.rb
solvas-jsduck-6.0.0.4021 lib/jsduck/warning/basic.rb
solvas-jsduck-6.0.0.2554 lib/jsduck/warning/basic.rb
solvas-jsduck-6.0.0.1891 lib/jsduck/warning/basic.rb
solvas-jsduck-6.0.0.beta.1888 lib/jsduck/warning/basic.rb
jsduck-troopjs-0.0.10 lib/jsduck/warning/basic.rb
jsduck-troopjs-0.0.9 lib/jsduck/warning/basic.rb
jsduck-troopjs-0.0.8 lib/jsduck/warning/basic.rb
jsduck-troopjs-0.0.7 lib/jsduck/warning/basic.rb
jsduck-troopjs-0.0.5 lib/jsduck/warning/basic.rb
jsduck-troopjs-0.0.4 lib/jsduck/warning/basic.rb
jsduck-troopjs-0.0.3 lib/jsduck/warning/basic.rb
jsduck-troopjs-0.0.1 lib/jsduck/warning/basic.rb
jsduck-6.0.0beta lib/jsduck/warning/basic.rb
jsduck-5.3.4 lib/jsduck/warning/basic.rb