Sha256: 9cddea67797e038a3d28504e3c3b2802a238664630be92ecdfc384b927fc8b31

Contents?: true

Size: 1.17 KB

Versions: 3

Compression:

Stored size: 1.17 KB

Contents

require 'ostruct'
require 'yaml'

module Spec
module Config
class Quandl

  class << self
  
    def config
      @@config ||= self.new
    end

    def method_missing(meth, *args, &block)
      self.config.data[meth.to_s]
    end

  end

  attr_accessor :data
  
  def initialize
    @data = resolve_data
  end

  private

  def resolve_data
    return load_file if file?
    load_environment
  end

  def load_environment
    if ENV['QUANDL_ADMIN_TOKEN'].blank? || ENV['QUANDL_USER_TOKEN'].blank?
      raise "ENV['QUANDL_ADMIN_TOKEN'] and ENV['QUANDL_USER_TOKEN'] must be defined!"
    end
    {
      token:                ENV['QUANDL_ADMIN_TOKEN'],
      user_token:           ENV['QUANDL_USER_TOKEN'],
      quandl_url:           'http://staging.quandl.com/api/',
      send_crash_reports:   false,
    }
  end

  def load_file
    YAML.load(File.read(file_path))
  end

  def file?
    File.exists?(file_path)
  end

  def file_path
    @file_path ||= File.join(ENV['HOME'], '.quandl/test')
  end

end
end
end

require "quandl/client"
require "quandl/fabricate"

include Quandl::Client

Quandl::Client.token = Spec::Config::Quandl.token
Quandl::Client.use( Spec::Config::Quandl.quandl_url )

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
quandl-0.4.4 spec/config/quandl.rb
quandl-0.4.3 spec/config/quandl.rb
quandl-0.4.2 spec/config/quandl.rb