Class: GroupBy

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

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(query, keys) ⇒ GroupBy

Returns a new instance of GroupBy.



191
192
193
194
# File 'lib/lilit_sql.rb', line 191

def initialize(query, keys)
  @query = query
  @keys = keys
end

Instance Attribute Details

#keysObject

Returns the value of attribute keys.



189
190
191
# File 'lib/lilit_sql.rb', line 189

def keys
  @keys
end

#queryObject

Returns the value of attribute query.



189
190
191
# File 'lib/lilit_sql.rb', line 189

def query
  @query
end

Instance Method Details

#aggregate(&blk) ⇒ Object



196
197
198
199
200
201
202
203
204
205
206
# File 'lib/lilit_sql.rb', line 196

def aggregate(&blk)
  result = expr(&blk).call(@keys, *@query.rows)

  Query.new(
    @query.froms,
    @query.conditions,
    @keys,
    @query.order_bys,
    Row.new(result.class.members, result)
  )
end