class Quandl::Client::Dataset

Public Class Methods

find(value) click to toggle source
Calls superclass method Quandl::Client::Base::Search#find
# File lib/quandl/client/models/dataset.rb, line 18
def find(value)
  # preformat
  value = format_id(value)
  # short-circuit if value is illegal
  return nil unless value.is_a?(Integer) || value.to_s =~ %r{^#{Quandl::Pattern.full_code}$}
  # search
  super(value)
end
format_id(value) click to toggle source
# File lib/quandl/client/models/dataset.rb, line 27
def format_id(value)
  # enforce code formatting
  if value.is_a?(String)
    # strip extra whitespace
    value = value.strip.rstrip
    # ensure slashes are forward facing
    value = value.gsub("\\","/").gsub(".","/")
    # ensure uppercase
    value = value.upcase
  end
  value
end
touch_existing(id) click to toggle source
# File lib/quandl/client/models/dataset.rb, line 14
def touch_existing(id)
  put(File.join(Quandl::Client::Base.url_with_version, "datasets/#{id}/touch")).exists?
end

Public Instance Methods

code=(v) click to toggle source
# File lib/quandl/client/models/dataset.rb, line 98
def code=(v)
  write_attribute(:code, sanitize_code(v) )
end
data() click to toggle source

DATA

# File lib/quandl/client/models/dataset.rb, line 86
def data
  defined?(@data) ? @data : data_scope
end
data=(value) click to toggle source
# File lib/quandl/client/models/dataset.rb, line 90
def data=(value)
  @data = Quandl::Data.new(value).sort_descending
end
data?() click to toggle source
# File lib/quandl/client/models/dataset.rb, line 94
def data?
  @data.is_a?(Quandl::Data)
end
data_scope() click to toggle source
# File lib/quandl/client/models/dataset.rb, line 126
def data_scope
  @data_scope ||= Quandl::Client::Dataset::Data.with_id(id)
end
dataset_data() click to toggle source
# File lib/quandl/client/models/dataset.rb, line 130
def dataset_data
  @dataset_data ||= Quandl::Client::Dataset::Data.new( id: id )
end
dataset_data?() click to toggle source
# File lib/quandl/client/models/dataset.rb, line 134
def dataset_data?
  @dataset_data.is_a?(Quandl::Client::Dataset::Data)
end
delete_data() click to toggle source
# File lib/quandl/client/models/dataset.rb, line 110
def delete_data
  # cant delete unsaved records
  return false if new_record?
  # delete and return success / failure
  self.class.destroy_existing("#{id}/data").saved?
end
delete_rows(*dates) click to toggle source
# File lib/quandl/client/models/dataset.rb, line 117
def delete_rows(*dates)
  # cant delete unsaved records
  return false if new_record?
  # collect dates
  query = { dates: Array(dates).flatten }.to_query
  # delete and return success / failure
  self.class.destroy_existing("#{id}/data/rows?#{query}").saved?
end
full_code() click to toggle source
# File lib/quandl/client/models/dataset.rb, line 80
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/dataset.rb, line 76
def full_url
  File.join(Quandl::Client::Base.url.gsub(/api\/?/, ''), full_code)
end
reference_url() click to toggle source
# File lib/quandl/client/models/dataset.rb, line 68
def reference_url
  self.display_url
end
reference_url=(value) click to toggle source
# File lib/quandl/client/models/dataset.rb, line 71
def reference_url=(value)
  value = "http://#{value}" if value.present? && !(value =~ /:\/\//)
  self.display_url = value
end
reload() click to toggle source
# File lib/quandl/client/models/dataset.rb, line 138
def reload
  @dataset_data = nil
  @data_scope = nil
  @full_code = nil
end
sanitize_code(code) click to toggle source
# File lib/quandl/client/models/dataset.rb, line 106
def sanitize_code(code)
  code.to_s.upcase.gsub(',','')
end
source() click to toggle source

ASSOCIATIONS #

# File lib/quandl/client/models/dataset.rb, line 51
def source
  @source ||= Quandl::Client::Source.find(self.source_code)
end
source_code=(v) click to toggle source
# File lib/quandl/client/models/dataset.rb, line 102
def source_code=(v)
  write_attribute(:source_code, sanitize_code(v) )
end