class Qdsl::SelectQuery

Public Class Methods

new(select, column_set) click to toggle source
# File lib/select_query.rb, line 3
def initialize(select, column_set)
  @select = select
  @column_set = column_set
end

Public Instance Methods

render(context, depth, id) click to toggle source
# File lib/select_query.rb, line 8
def render(context, depth, id)
  indent = '  ' * depth

  columns = @column_set.capture(@select.source, [])

  select_result = @select.render(context, depth)

  fragments = []
  fragments << "(\n"
  fragments << select_result.sql
  fragments << ") AS #{id}\n"

  sql = fragments.join
  RenderResult.new(
    id,
    sql,
    columns.collect(&:name),
    {}
  )
end