Sha256: 6ca2c7af6dcb56b6358bcadf70b4f8e9329d9cd6dc382530c721f7bd3cc95199

Contents?: true

Size: 1.58 KB

Versions: 7

Compression:

Stored size: 1.58 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 :data, :source_code, :code, :name, :urlize_name, 
    :description, :updated_at, :frequency, :from_date, 
    :to_date, :column_names, :private, :type, :display_url
    
  attributes :locations_attributes
  
  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
  
end

end
end

Version data entries

7 entries across 7 versions & 1 rubygems

Version Path
quandl_client-0.1.7 lib/quandl/client/models/dataset.rb
quandl_client-0.1.6 lib/quandl/client/models/dataset.rb
quandl_client-0.1.5 lib/quandl/client/models/dataset.rb
quandl_client-0.1.4 lib/quandl/client/models/dataset.rb
quandl_client-0.1.3 lib/quandl/client/models/dataset.rb
quandl_client-0.1.2 lib/quandl/client/models/dataset.rb
quandl_client-0.1.0 lib/quandl/client/models/dataset.rb