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.



40
41
42
43
# File 'lib/lilit_sql.rb', line 40

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

Instance Attribute Details

#keysObject

Returns the value of attribute keys.



38
39
40
# File 'lib/lilit_sql.rb', line 38

def keys
  @keys
end

#queryObject

Returns the value of attribute query.



37
38
39
# File 'lib/lilit_sql.rb', line 37

def query
  @query
end

Instance Method Details

#aggregate(&blk) ⇒ Object



45
46
47
48
49
50
51
52
53
54
# File 'lib/lilit_sql.rb', line 45

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

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