class Quandl::List

Attributes

meta[R]
values[R]

Public Class Methods

new(klass, values, meta) click to toggle source
# File lib/quandl/model/list.rb, line 5
def initialize(klass, values, meta)
  @klass = klass
  @values = values.map { |v| klass.new(v, meta: meta) }
  @meta = meta
end

Public Instance Methods

inspect() click to toggle source
# File lib/quandl/model/list.rb, line 32
def inspect
  { meta: @meta, values: @values }.to_s
end
more_results?() click to toggle source
# File lib/quandl/model/list.rb, line 11
def more_results?
  raise(QuandlError, "#{@klass} does not support pagination yet") if !@meta.key?('total_pages') && !@meta.key?('current_page')

  @meta['total_pages'] > @meta['current_page']
end
to_a() click to toggle source
# File lib/quandl/model/list.rb, line 17
def to_a
  @values.map(&:to_a)
end
to_csv() click to toggle source
# File lib/quandl/model/list.rb, line 21
def to_csv
  raise(QuandlError, 'No values to export') if @values.empty?

  CSV.generate do |csv|
    csv << @values.first.column_names
    @values.each do |row|
      csv << row.to_a
    end
  end
end

Private Instance Methods

method_missing(method_name, *args, &block) click to toggle source
Calls superclass method
# File lib/quandl/model/list.rb, line 38
def method_missing(method_name, *args, &block)
  return @meta[method_name.to_s] if @meta.key?(method_name.to_s)
  return @meta[*args] if method_name.to_s == '[]' && @meta.key?(args[0].to_s)
  return @values.method(method_name).call(*args, &block) if @values.respond_to?(method_name)

  super
end