Module: Quandl::Data::Table::Operations

Extended by:
ActiveSupport::Concern
Includes:
Operation
Included in:
Quandl::Data::Table
Defined in:
lib/quandl/data/table/operations.rb

Defined Under Namespace

Modules: ClassMethods

Instance Method Summary collapse

Instance Method Details

#collapse(*args) ⇒ Object



82
83
84
85
86
# File 'lib/quandl/data/table/operations.rb', line 82

def collapse(*args)
  return @collapse unless args.first.present?
  self.collapse = args.first
  self
end

#collapse=(collapse) ⇒ Object



87
88
89
90
91
# File 'lib/quandl/data/table/operations.rb', line 87

def collapse=(collapse)
  @collapse = collapse
  @frequency = collapse
  @data_array = Collapse.perform( data_array, collapse )
end

#frequencyObject



93
94
95
# File 'lib/quandl/data/table/operations.rb', line 93

def frequency
  @frequency ||= Collapse.frequency?( data_array )
end

#frequency=(value) ⇒ Object



96
97
98
# File 'lib/quandl/data/table/operations.rb', line 96

def frequency=(value)
  @frequency = value.to_sym
end

#parse(data) ⇒ Object



100
101
102
103
# File 'lib/quandl/data/table/operations.rb', line 100

def parse(data)
  data = Parse.perform( data )
  data
end

#sort_ascendingObject



56
57
58
# File 'lib/quandl/data/table/operations.rb', line 56

def sort_ascending
  Table.new( Parse.sort( data_array, :asc ), frequency: frequency )
end

#sort_ascending!Object



59
60
61
62
# File 'lib/quandl/data/table/operations.rb', line 59

def sort_ascending!
  @data_array = Parse.sort( data_array, :asc )
  self
end

#sort_descendingObject



64
65
66
# File 'lib/quandl/data/table/operations.rb', line 64

def sort_descending
  Table.new( Parse.sort( data_array, :desc ), frequency: frequency )
end

#sort_descending!Object



67
68
69
70
# File 'lib/quandl/data/table/operations.rb', line 67

def sort_descending!
  @data_array = Parse.sort( data_array, :desc )
  self
end

#sort_order(dir) ⇒ Object



52
53
54
# File 'lib/quandl/data/table/operations.rb', line 52

def sort_order(dir)
  dir == :asc ? sort_ascending! : sort_descending!
end

#to_csvObject



32
33
34
# File 'lib/quandl/data/table/operations.rb', line 32

def to_csv
  data_array.collect(&:to_csv).join
end

#to_dateObject



44
45
46
# File 'lib/quandl/data/table/operations.rb', line 44

def to_date
  Parse.julian_to_date data_array
end

#to_date!Object



47
48
49
50
# File 'lib/quandl/data/table/operations.rb', line 47

def to_date!
  @data_array = Parse.julian_to_date data_array
  self
end

#to_hObject



25
26
27
28
29
30
# File 'lib/quandl/data/table/operations.rb', line 25

def to_h
  data_array.inject({}) do |memo, row|
    memo[row[0]] = row[1..-1]
    memo
  end
end

#to_jdObject



36
37
38
# File 'lib/quandl/data/table/operations.rb', line 36

def to_jd
  Table.new( Parse.date_to_julian( data_array ), frequency: frequency )
end

#to_jd!Object



39
40
41
42
# File 'lib/quandl/data/table/operations.rb', line 39

def to_jd!
  @data_array = Parse.date_to_julian( data_array )
  self
end

#transform(*args) ⇒ Object



72
73
74
75
76
# File 'lib/quandl/data/table/operations.rb', line 72

def transform(*args)
  return @transform unless args.first.present?
  self.transform = args.first
  self
end

#transform=(value) ⇒ Object



77
78
79
80
# File 'lib/quandl/data/table/operations.rb', line 77

def transform=(value)
  @transform = value
  @data_array = Transform.perform( data_array, value )
end