Class: Riak::Client::BeefcakeProtobuffsBackend::TimeSeriesQueryOperator

Inherits:
Operator
  • Object
show all
Defined in:
lib/riak/client/beefcake/time_series_query_operator.rb

Instance Attribute Summary

Attributes inherited from Operator

#backend

Instance Method Summary collapse

Methods inherited from Operator

#initialize

Constructor Details

This class inherits a constructor from Riak::Client::BeefcakeProtobuffsBackend::Operator

Instance Method Details

#query(base, interpolations = { }) ⇒ Object



10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
# File 'lib/riak/client/beefcake/time_series_query_operator.rb', line 10

def query(base, interpolations = {  })
  interpolator = TsInterpolation.new base: base
  interpolator.interpolations = pairs_for interpolations

  request = TsQueryReq.new query: interpolator

  result = backend.protocol do |p|
    p.write :TsQueryReq, request
    p.expect :TsQueryResp, TsQueryResp, empty_body_acceptable: true
  end

  return [] if :empty == result

  codec = TsCellCodec.new

  collection = Riak::TimeSeries::Collection.
               new(result.rows.map do |row|
                     Riak::TimeSeries::Row.new codec.scalars_for row.cells
                   end)

  collection.columns = result.columns

  collection
end