class Ravelin::ProxyClient

Public Class Methods

new(base_url:, username:, password:, api_version: 2, include_rule_output: false) click to toggle source
# File lib/ravelin/proxy_client.rb, line 3
def initialize(base_url:, username:, password:, api_version: 2, include_rule_output: false)

  raise ArgumentError, "api_version must be 2 or 3" unless [2,3].include? api_version
  @api_version = api_version
  @url_prefix = '/ravelinproxy'
  @include_rule_output = include_rule_output

  @connection = Faraday.new(base_url, faraday_proxy_options) do |conn|
    conn.response :json, context_type: /\bjson$/
    conn.adapter Ravelin.faraday_adapter
    conn.basic_auth(username, password)
  end
end

Public Instance Methods

faraday_proxy_options() click to toggle source
# File lib/ravelin/proxy_client.rb, line 17
def faraday_proxy_options
  options = {
    request: { timeout: Ravelin.faraday_timeout },
    headers: {
      'Content-Type'  => 'application/json; charset=utf-8'.freeze,
      'User-Agent'    => "Ravelin Proxy RubyGem/#{Ravelin::VERSION}".freeze
    }
  }
  if @include_rule_output
    options[:headers]['Accept'] = 'application/vnd.ravelin.score.v2+json'
  end
  options
end