Class: SQLint::Linter

Inherits:
Object
  • Object
show all
Defined in:
lib/sqlint/linter.rb

Defined Under Namespace

Classes: Lint, ParseState

Constant Summary collapse

END_PARSE =
ParseState.new(nil, nil)

Instance Method Summary collapse

Constructor Details

#initialize(filename, input_stream) ⇒ Linter

Returns a new instance of Linter.



9
10
11
12
# File 'lib/sqlint/linter.rb', line 9

def initialize(filename, input_stream)
  @input = input_stream.read
  @filename = filename
end

Instance Method Details

#runObject



14
15
16
17
18
19
20
21
22
23
# File 'lib/sqlint/linter.rb', line 14

def run
  Enumerator.new do |results|
    state = ParseState.new(@input, 0)
    while state != END_PARSE
      error, new_parse_state = parse_next_error(state)
      results << error if error
      state = new_parse_state
    end
  end
end