Sha256: 9eec0b6ad9a88910f10de4606b5d777f46668663df618f9c5b8fd7f6d8244116

Contents?: true

Size: 1014 Bytes

Versions: 2

Compression:

Stored size: 1014 Bytes

Contents

require_relative 'parsers/null_parser'
require_relative 'parsers/standard_parser'
require_relative 'parsers/vim_quickfix_parser'
require_relative 'parsers/csslint_parser'

module LintTrap
  # Determines the appropriate parser for the given linter
  module ParserFactory
    class << self
      def register(linter, parser)
        @parsers ||= Hash.new{|h, k| h[k] = Parsers::NullParser}
        @parsers[linter] = parser
      end

      def parser_for(linter)
        @parsers[linter]
      end
    end

    register 'standard', Parsers::StandardParser
    register 'vim_quickfix', Parsers::VimQuickfixParser

    register 'checkstyle', Parsers::StandardParser
    register 'coffeelint', Parsers::StandardParser
    register 'csslint', Parsers::CSSLintParser
    register 'golint', Parsers::VimQuickfixParser
    register 'jshint', Parsers::StandardParser
    register 'jsonlint', Parsers::StandardParser
    register 'rubocop', Parsers::StandardParser
    register 'scsslint', Parsers::StandardParser
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
lint_trap-0.0.2 lib/lint_trap/parser_factory.rb
lint_trap-0.0.1 lib/lint_trap/parser_factory.rb