Class: Prosperity::Aggregate::AggregateBuilder

Inherits:
Object
  • Object
show all
Defined in:
lib/prosperity/aggregate/aggregate_builder.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(string = nil, &block) ⇒ AggregateBuilder

Returns a new instance of AggregateBuilder.



5
6
7
8
9
10
# File 'lib/prosperity/aggregate/aggregate_builder.rb', line 5

def initialize(string = nil, &block)
  raise "Can't specify a string and a block" if string && block_given?

  @string = string
  @block = block
end

Instance Attribute Details

#blockObject (readonly)

Returns the value of attribute block.



3
4
5
# File 'lib/prosperity/aggregate/aggregate_builder.rb', line 3

def block
  @block
end

Instance Method Details

#average(column) ⇒ Object



37
38
39
# File 'lib/prosperity/aggregate/aggregate_builder.rb', line 37

def average(column)
  Aggregate::Average.new(column)
end

#buildObject



12
13
14
15
16
17
18
19
# File 'lib/prosperity/aggregate/aggregate_builder.rb', line 12

def build
  res = @string ? @string : instance_eval(&block)
  if res.is_a?(String)
    Aggregate::Sql.new(res)
  else
    res
  end
end

#countObject



21
22
23
# File 'lib/prosperity/aggregate/aggregate_builder.rb', line 21

def count
  Aggregate::Count.new
end

#maximum(column) ⇒ Object



29
30
31
# File 'lib/prosperity/aggregate/aggregate_builder.rb', line 29

def maximum(column)
  Aggregate::Maximum.new(column)
end

#minimum(column) ⇒ Object



33
34
35
# File 'lib/prosperity/aggregate/aggregate_builder.rb', line 33

def minimum(column)
  Aggregate::Minimum.new(column)
end

#sum(column) ⇒ Object



25
26
27
# File 'lib/prosperity/aggregate/aggregate_builder.rb', line 25

def sum(column)
  Aggregate::Sum.new(column)
end