Class: SQLint::Linter
- Inherits:
-
Object
- Object
- SQLint::Linter
- Defined in:
- lib/sqlint/linter.rb
Defined Under Namespace
Classes: Lint
Instance Method Summary collapse
-
#initialize(filename, input_stream) ⇒ Linter
constructor
A new instance of Linter.
- #run ⇒ Object
Constructor Details
#initialize(filename, input_stream) ⇒ Linter
Returns a new instance of Linter.
7 8 9 10 |
# File 'lib/sqlint/linter.rb', line 7 def initialize(filename, input_stream) @input = input_stream.read @filename = filename end |
Instance Method Details
#run ⇒ Object
12 13 14 15 16 17 18 19 20 21 22 23 24 |
# File 'lib/sqlint/linter.rb', line 12 def run [].tap do |results| begin PgQuery.parse(@input) rescue PgQuery::ParseError => e offset = e.location lines_before_error = @input[0...(offset)].split("\n") line_number = lines_before_error.size column_number = lines_before_error.any? ? lines_before_error.last.size : 1 results << Lint.new(@filename, line_number, column_number, :error, e.) end end end |