Class: DataMapper::Adapters::DataObjectsAdapter

Inherits:
Object
  • Object
show all
Includes:
SQL
Defined in:
lib/dm-aggregates/adapters/data_objects_adapter.rb

Defined Under Namespace

Modules: SQL

Instance Method Summary collapse

Instance Method Details

#aggregate(query) ⇒ Object



4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
# File 'lib/dm-aggregates/adapters/data_objects_adapter.rb', line 4

def aggregate(query)
  with_reader(read_statement(query), query.bind_values) do |reader|
    results = []

    while(reader.next!) do
      row = query.fields.zip(reader.values).map do |field,value|
        if field.respond_to?(:operator)
          send(field.operator, field.target, value)
        else
          field.typecast(value)
        end
      end

      results << (query.fields.size > 1 ? row : row[0])
    end

    results
  end
end