class Quandl::Client::Base

Constants

TOKEN_THREAD_KEY

Attributes

token[RW]
url[RW]

Public Class Methods

her_api() click to toggle source
# File lib/quandl/client/base.rb, line 52
def her_api
  Her::API.new.setup url: url_with_version do |c|
    c.use TokenAuthentication
    c.use TrackRequestSource
    c.use Faraday::Request::Multipart
    c.use Faraday::Request::UrlEncoded
    c.use Quandl::Client::Middleware::ParseJSON
    c.use Faraday::Adapter::NetHttp
  end
end
inherited(subclass) click to toggle source
# File lib/quandl/client/base.rb, line 71
def inherited(subclass)
  # remember models that inherit from base
  models << subclass unless models.include?(subclass)
  # include model behaviour
  subclass.class_eval do
    include Quandl::Client::Base::Model
    include Quandl::Client::Base::Benchmark
    include Quandl::Client::Base::Attributes
    include Quandl::Client::Base::Validation
    include Quandl::Client::Base::Search
  end
end
models() click to toggle source
# File lib/quandl/client/base.rb, line 84
def models
  @@models ||= []
end
threadsafe_token!() click to toggle source
# File lib/quandl/client/base.rb, line 22
def threadsafe_token!
  @threadsafe_token = true
end
threadsafe_token?() click to toggle source
# File lib/quandl/client/base.rb, line 26
def threadsafe_token?
  @threadsafe_token || false
end
token=(token) click to toggle source
# File lib/quandl/client/base.rb, line 35
def token=(token)
  if threadsafe_token?
    Thread.current[TOKEN_THREAD_KEY] = token
  else
    @token = token
  end
  models_use_her_api!
end
url_with_version() click to toggle source
# File lib/quandl/client/base.rb, line 67
def url_with_version
  File.join( url.to_s, Quandl::Client.api_version.to_s )
end
use(url) click to toggle source
# File lib/quandl/client/base.rb, line 30
def use(url)
  self.url = url
  models_use_her_api!
end

Protected Class Methods

models_use_her_api!() click to toggle source
# File lib/quandl/client/base.rb, line 90
def models_use_her_api!
  models.each  do |m|
    m.url = url_with_version
    m.use_api(her_api)
  end
end