class Quandl::Client::Superset

Public Class Methods

example() click to toggle source
# File lib/quandl/client/models/superset.rb, line 27
def self.example
  self.new( code: "SUPERSET_EXAMPLE", name: "Superset Name", description: "Superset description", column_codes: ['NSE.OIL.1'], column_names: ['Column Name'] )
end
find_or_build( attributes={} ) click to toggle source
# File lib/quandl/client/models/superset.rb, line 13
def self.find_or_build( attributes={} )
  attrs = attributes.symbolize_keys!
  # by id
  record = self.find(attrs[:id]) if attrs[:id].present?
  # by source_code/code
  record = self.find(File.join(attrs[:source_code], attrs[:code])) if !record.try(:exists?) && attrs[:source_code].present? && attrs[:code].present?
  # by code
  record = self.find(attrs[:code]) if !record.try(:exists?) && attrs[:code].present?
  # build
  record = self.new unless record.try(:exists?)
  record.assign_attributes(attrs)
  record
end

Public Instance Methods

data() click to toggle source
# File lib/quandl/client/models/superset.rb, line 31
def data
  @data ||= Quandl::Client::Dataset::Data.with_id(id)
end
full_code() click to toggle source
# File lib/quandl/client/models/superset.rb, line 39
def full_code
  File.join(self.source_code.to_s, self.code.to_s)
end
full_url() click to toggle source
# File lib/quandl/client/models/superset.rb, line 35
def full_url
  File.join(Quandl::Client::Base.url.gsub(/api\/?/, ''), full_code)
end

Protected Instance Methods

column_codes_should_be_valid!() click to toggle source
# File lib/quandl/client/models/superset.rb, line 45
def column_codes_should_be_valid!
  # must be an array
  unless column_codes.respond_to?(:each)
    # failure
    self.errors.add( :column_codes, "expected an array, but got #{column_codes.class}.")
    # nothing more to do
    return false
  end
  # check each code
  column_codes.each do |code|
    # is the code valid?
    next if code =~ /#{Quandl::Pattern.code}\.#{Quandl::Pattern.code}\.[0-9]+/
    # otherwise report error
    self.errors.add( :column_codes, "Code '#{code}' is invalid. Expected: /#{Quandl::Pattern.code.to_example}.#{Quandl::Pattern.code.to_example}.INTEGER/" )
    # nothing more to do here
    return false
  end
  # success
  true
end