class TurboTest::StaticAnalysis::ActiveRecord::LineColumnStack

Public Class Methods

new() click to toggle source
# File lib/turbo_test_static_analysis/active_record_schema/sexp_builder/line_column_stack.rb, line 13
def initialize
  @_stack = []
end

Public Instance Methods

push(line, column) click to toggle source
# File lib/turbo_test_static_analysis/active_record_schema/sexp_builder/line_column_stack.rb, line 17
def push(line, column)
  line_column = [line, column]
  @_stack.push line_column unless @_stack.last == line_column
end
remove_greater_than(line_column) click to toggle source
# File lib/turbo_test_static_analysis/active_record_schema/sexp_builder/line_column_stack.rb, line 22
def remove_greater_than(line_column)
  first_pop = nil
  while last && greater(last, line_column)
    line = pop
    first_pop ||= line
  end
  first_pop
end

Private Instance Methods

greater(line_column_a, line_column_b) click to toggle source
# File lib/turbo_test_static_analysis/active_record_schema/sexp_builder/line_column_stack.rb, line 33
def greater(line_column_a, line_column_b)
  line_column_a[0] > line_column_b[0] ||
    (line_column_a[0] == line_column_b[0] &&
      line_column_a[1] >= line_column_b[1])
end