Class: Quandl::Cassandra::Models::Column::Write::GroupDataByColumn

Inherits:
Quandl::Cassandra::Models::Column::Write show all
Defined in:
lib/quandl/cassandra/models/column/write/group_data_by_column.rb

Instance Method Summary collapse

Methods inherited from Quandl::Cassandra::Models::Column::Write

perform

Instance Method Details

#column_id(index) ⇒ Object



29
30
31
32
33
34
# File 'lib/quandl/cassandra/models/column/write/group_data_by_column.rb', line 29

def column_id(index)
  # ensure column_ids is defined
  self.column_ids ||= Quandl::Cassandra::Models::Dataset.find_column_ids_by_id(id)
  # ensure column_ids[index] is present
  self.column_ids[index] ||= Cql::Uuid.new(SecureRandom.uuid)
end

#group_by_statement_valuesObject



10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
# File 'lib/quandl/cassandra/models/column/write/group_data_by_column.rb', line 10

def group_by_statement_values
  # for each [ [date, val, val], ... ]
  self.statement_values = []
  frequency_data.each do |frequency, rows|
    frequency = frequency.to_s
    rows.each do |row|
      # extract date
      date = row[0]
      # for each [ val, val, ... ]
      row[1..-1].each_with_index do |value, index|
        # ensure array
        cid = column_id(index)
        # add to values
        self.statement_values << [ cid, frequency, date, value] unless value.blank?
      end
    end
  end
end

#performObject

INPUTS { source: [ [1,2,3], [2,4,8], … ], weekly: … }



6
7
8
# File 'lib/quandl/cassandra/models/column/write/group_data_by_column.rb', line 6

def perform
  group_by_statement_values
end