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