Sha256: 7257b3a36610e2f663a1880495e41533399c257df2ed6c23b11f5994b87d1295
Contents?: true
Size: 1.75 KB
Versions: 2
Compression:
Stored size: 1.75 KB
Contents
module Quandl module Client class Dataset include Concerns::Search include Concerns::Properties ########## # SCOPES # ########## # SEARCH search_scope :query, :rows search_scope :page, ->(p){ where( page: p.to_i )} search_scope :source_code, ->(c){ where( code: c.to_s.upcase )} # SHOW scope_composer_for :show show_scope :rows, :exclude_data, :exclude_headers, :trim_start, :trim_end, :transform, :collapse show_helper :find, ->(id){ connection.where(attributes).find( id ) } show_helper :connection, -> { self.class.parent } ############### # ASSOCIATIONS # ############### def source @source ||= Source.find(self.source_code) end ############### # VALIDATIONS # ############### validates :source_code, presence: true, length: { minimum: 2 }, format: { with: /([A-Z0-9_]+)/ } validates :code, presence: true, length: { minimum: 2 }, format: { with: /([A-Z0-9_]+)/ } validates :name, presence: true ############## # PROPERTIES # ############## attributes :source_code, :code, :name, :urlize_name, :description, :updated_at, :frequency, :from_date, :to_date, :column_names, :private, :type, :display_url, :column_spec, :import_spec, :import_url, :locations_attributes, :data before_save :ensure_data_is_csv alias_method :locations, :locations_attributes alias_method :locations=, :locations_attributes= def full_code @full_code ||= File.join(self.source_code, self.code) end def data_table Data::Table.new( raw_data ) end def raw_data @raw_data ||= (self.data || Dataset.find(full_code).data || []) end protected def ensure_data_is_csv self.data = Quandl::Data::Table.new(data).to_csv end end end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
quandl_client-0.1.9 | lib/quandl/client/models/dataset.rb |
quandl_client-0.1.8 | lib/quandl/client/models/dataset.rb |