Module: Tradier::Default

Defined in:
lib/tradier/default.rb

Constant Summary collapse

ENDPOINT =
'https://api.tradier.com'
VERSION =
'v1'
CONNECTION_OPTIONS =
{
  :headers => {
    :accept => 'application/json',
    :user_agent => "Tradier Ruby Gem #{Tradier::VERSION}",
  },
  :request => {
    :open_timeout => 5,
    :timeout => 10,
  }
}
MIDDLEWARE =
Faraday::Builder.new do |builder|
  # Convert request params to "www-form-urlencoded"
  builder.use Faraday::Request::UrlEncoded
  # Parse JSON response bodies using MultiJson
  builder.use Tradier::Response::ParseJson
  # # Handle 4xx server responses
  builder.use Tradier::Response::RaiseError, Tradier::Error::ClientError
  # # Handle 5xx server responses
  builder.use Tradier::Response::RaiseError, Tradier::Error::ServerError
  # Set Faraday's HTTP adapter
  builder.adapter Faraday.default_adapter
end

Class Method Summary collapse

Class Method Details

.access_tokenString

Returns:

  • (String)


47
48
49
# File 'lib/tradier/default.rb', line 47

def access_token
  ENV['TRADIER_ACCESS_TOKEN']
end

.connection_optionsObject



60
61
62
# File 'lib/tradier/default.rb', line 60

def connection_options
  CONNECTION_OPTIONS
end

.endpointString

Returns:

  • (String)


52
53
54
# File 'lib/tradier/default.rb', line 52

def endpoint
  ENDPOINT
end

.middlewareFaraday::Builder

Note:

Faraday's middleware stack implementation is comparable to that of Rack middleware. The order of middleware is important: the first middleware on the list wraps all others, while the last middleware is the innermost one.



68
69
70
# File 'lib/tradier/default.rb', line 68

def middleware
  MIDDLEWARE
end

.optionsHash

Returns:

  • (Hash)


42
43
44
# File 'lib/tradier/default.rb', line 42

def options
  Hash[Tradier::Configurable.keys.map { |key| [key, send(key)] }]
end

.versionObject



56
57
58
# File 'lib/tradier/default.rb', line 56

def version
  VERSION
end