Class: Quandl::Cassandra::Models::Column::Read::Data

Inherits:
Quandl::Cassandra::Models::Column::Read show all
Defined in:
lib/quandl/cassandra/models/column/read/data.rb

Instance Method Summary collapse

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

#column_collapses, #column_ids, #column_ids=, #count?, perform

Instance Method Details

#collapse(data) ⇒ Object



35
36
37
38
# File 'lib/quandl/cassandra/models/column/read/data.rb', line 35

def collapse(data)
  data = data.collapse( attributes[:collapse] ) if attributes[:collapse]
  data
end

#limit(data) ⇒ Object



45
46
47
48
# File 'lib/quandl/cassandra/models/column/read/data.rb', line 45

def limit(data)
  data = data.limit( attributes[:pristine][:limit] ) if attributes[:pristine][:limit]
  data
end

#performObject



3
4
5
# File 'lib/quandl/cassandra/models/column/read/data.rb', line 3

def perform
  attributes[:data] = quandl_data( attributes[:data] ) unless count?
end

#quandl_data(data) ⇒ Object



7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
# File 'lib/quandl/cassandra/models/column/read/data.rb', line 7

def quandl_data(data)
  # init
  data = Quandl::Cassandra::Models::Data.new( data )
  data.dataset_id = attributes[:id]
  data.column_ids = column_ids unless attributes[:column].present?
  data.column_frequencies = attributes[:column_frequencies] unless attributes[:column].present?
  # post process
  data = collapse(data)
  data = transform(data)
  data = trim(data)
  data = sort( data )
  data = row( data )
  data = limit(data)
  data
end

#row(data) ⇒ Object



50
51
52
53
54
55
56
57
# File 'lib/quandl/cassandra/models/column/read/data.rb', line 50

def row(data)
  # if a row was requested and the data count is greater than a single row
  if attributes[:row].present? && data.count > 1
    # grab the last row
    data.data_array = [data.data_array[-1]]
  end
  data
end

#sort(data) ⇒ Object



31
32
33
# File 'lib/quandl/cassandra/models/column/read/data.rb', line 31

def sort(data)
  data = data.sort_order( attributes[:order] )
end

#transform(data) ⇒ Object



40
41
42
43
# File 'lib/quandl/cassandra/models/column/read/data.rb', line 40

def transform(data)
  data = data.transform( attributes[:transform] ) if attributes[:transform]
  data
end

#trim(data) ⇒ Object



23
24
25
26
27
28
29
# File 'lib/quandl/cassandra/models/column/read/data.rb', line 23

def trim(data)
  return data unless attributes[:data_table].present?
  data = data.sort_order( :asc ) if attributes[:data_table][:trim_start] || attributes[:data_table][:trim_end]
  data = data.trim_start( attributes[:data_table][:trim_start] ) if attributes[:data_table][:trim_start]
  data = data.trim_end( attributes[:data_table][:trim_end] ) if attributes[:data_table][:trim_end]
  data
end