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



90
91
92
93
94
# File 'lib/quandl/data/table/operations.rb', line 90

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

#collapse=(collapse) ⇒ Object



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

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

#frequencyObject



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

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

#frequency=(value) ⇒ Object



104
105
106
# File 'lib/quandl/data/table/operations.rb', line 104

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

#limit(amount) ⇒ Object



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

def limit(amount)
  @data_array = data_array[0..( amount.to_i - 1 )] if amount.present?
  self
end

#parse(data) ⇒ Object



108
109
110
111
# File 'lib/quandl/data/table/operations.rb', line 108

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

#sort_ascendingObject



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

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

#sort_ascending!Object



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

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

#sort_descendingObject



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

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

#sort_descending!Object



75
76
77
78
# File 'lib/quandl/data/table/operations.rb', line 75

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

#sort_order(dir) ⇒ Object



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

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

#to_csvObject



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

def to_csv
  return data_array.collect(&:to_csv).join if data_array?
  return pristine_data.collect(&:to_csv).join if pristine_data.kind_of?(Array)
  return pristine_data if pristine_data.kind_of?(String)
  return ''
end

#to_dateObject



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

def to_date
  Parse.julian_to_date data_array
end

#to_date!Object



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

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



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

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

#to_jd!Object



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

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

#transform(*args) ⇒ Object



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

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

#transform=(value) ⇒ Object



85
86
87
88
# File 'lib/quandl/data/table/operations.rb', line 85

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