class Nexter::Query

Attributes

columns[R]
compass[R]
reorders[R]
wheres[R]

Public Class Methods

new(columns, goto) click to toggle source
# File lib/nexter/query.rb, line 5
def initialize(columns, goto)
  @columns = columns
  @compass = Compass.new(goto)
  @reorders = []
  iterate
end

Public Instance Methods

iterate() click to toggle source
# File lib/nexter/query.rb, line 12
def iterate
  @wheres = []
  columns = @columns.dup

  while column = columns.pop do
    section   = Section.new(columns)
    direction = Direction.new(column, compass)

    reorders.unshift("#{column[:col]} #{direction.compass.redirection}")

    next unless direction.slice

    @wheres << "#{section.sql}#{section.blank? ? '' : ' AND '}#{direction.sql}"
  end

  # binding.pry
  @wheres.compact!
end
Also aliased as: sql
sql()
Alias for: iterate