Class: Qdsl::SelectQuery

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

Instance Method Summary collapse

Constructor Details

#initialize(select, column_set) ⇒ SelectQuery

Returns a new instance of SelectQuery.



3
4
5
6
# File 'lib/select_query.rb', line 3

def initialize(select, column_set)
  @select = select
  @column_set = column_set
end

Instance Method Details

#render(context, depth, id) ⇒ Object



8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
# 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