Class: Quandl::Cassandra::Models::Multiset

Inherits:
Dataset
  • Object
show all
Defined in:
lib/quandl/cassandra/models/multiset.rb

Class Method Summary collapse

Instance Method Summary collapse

Methods inherited from Dataset

#data, #data=, #reload, #trim_end, #trim_start

Methods included from Dataset::Columns

#column_attributes=, #column_names, #column_units, #columns

Class Method Details

.with_columns(datasets_columns) ⇒ Object



9
10
11
# File 'lib/quandl/cassandra/models/multiset.rb', line 9

def with_columns(datasets_columns)
  self.new( datasets_columns: datasets_columns )
end

Instance Method Details

#column_frequenciesObject



19
20
21
# File 'lib/quandl/cassandra/models/multiset.rb', line 19

def column_frequencies
  @column_frequencies ||= columns.collect(&:frequency)
end

#column_idsObject



23
24
25
# File 'lib/quandl/cassandra/models/multiset.rb', line 23

def column_ids
  @column_ids ||= column_ids_from_datasets_columns
end

#column_ids_from_datasets_columnsObject



27
28
29
30
31
32
33
34
35
# File 'lib/quandl/cassandra/models/multiset.rb', line 27

def column_ids_from_datasets_columns
  ids = []
  datasets_columns.to_s.split(',').each do |dataset_column|
    dataset_id, column = dataset_column.split('.')
    datasets[dataset_id] ||= Quandl::Cassandra::Models::Dataset.find(dataset_id).try(:column_ids)
    ids << datasets[dataset_id][ column.to_i - 1 ] if datasets[dataset_id].is_a?(Array)
  end
  ids
end

#data_scopeObject



15
16
17
# File 'lib/quandl/cassandra/models/multiset.rb', line 15

def data_scope
  Quandl::Cassandra::Models::Data.collapse(:source).column_ids( column_ids ).column_frequencies( column_frequencies )
end

#dataset_attributeObject



50
51
52
53
# File 'lib/quandl/cassandra/models/multiset.rb', line 50

def dataset_attribute
  # find or initialize dataset attribute object
  @dataset_attribute ||= Quandl::Cassandra::Models::DatasetAttribute.new
end

#datasetsObject



37
38
39
# File 'lib/quandl/cassandra/models/multiset.rb', line 37

def datasets
  @datasets ||= {}
end

#frequencyObject



41
42
43
44
45
46
47
48
# File 'lib/quandl/cassandra/models/multiset.rb', line 41

def frequency
  return @frequency if @frequency
  uniq_freqs = column_frequencies.compact.uniq
  Quandl::Operation::Collapse.valid_collapses.each do |collapse|
    @frequency = collapse.to_s if uniq_freqs.include?(collapse.to_s)
  end
  @frequency
end