class Nucleo::Client

Constants

VERSION

Attributes

configuration[RW]
routes[RW]

Public Class Methods

api_host() click to toggle source

Helper method to return the API host

@return [String] API Base URL

# File lib/nucleo/client.rb, line 168
def self.api_host
  self.configuration.api_host
end
configure() { |configuration| ... } click to toggle source

Specify configuration options. This will be applied to our memoized Configuration.

@return [Nucleo::Configuration]

# File lib/nucleo/client.rb, line 46
def self.configure
  yield(self.configuration)
end
connection() click to toggle source

Helper method to access the Connection object

@return [Nucleo::Connection]

# File lib/nucleo/client.rb, line 53
def self.connection
  @connection ||= Nucleo::Connection.new(url: self.configuration.api_host) do |builder|
    builder.use(:gzip)

    builder.response(:json, content_type: /\bjson$/)

    builder.response(:logger, self.configuration.request_logger)
    builder.response(:detailed_logger, self.configuration.detailed_logger)

    builder.request(:retry, max: 10, interval: 1, interval_randomness: 0.5, backoff_factor: 2)

    builder.options[:timeout] = 600

    builder.adapter(Nucleo::Connection.default_adapter)
  end

  # Inject the Authorization via the API key
  @connection.headers['x-api-key'] = self.configuration.access_token

  # Merge in the default headers
  @connection.headers.merge!(self.configuration.connection_options[:headers])

  @connection
end
delete(url, data={}, headers={}) click to toggle source

Helper method to perform an DELETE request

@return [Nucleo::Response] Faraday Response Delegator

# File lib/nucleo/client.rb, line 135
def self.delete(url, data={}, headers={})
  request = self.connection.delete(url, data, headers)

  Nucleo::Response.new(request)
end
get(url, data={}, headers={}) click to toggle source

Helper method to perform a GET request

@return [Nucleo::Response] Faraday Response Delegator

# File lib/nucleo/client.rb, line 81
def self.get(url, data={}, headers={})
  request = self.connection.get(url, data, headers)

  Nucleo::Response.new(request)
end
head(url, data={}, headers={}) click to toggle source

Helper method to perform a HEAD request

@return [Nucleo::Response] Faraday Response Delegator

# File lib/nucleo/client.rb, line 90
def self.head(url, data={}, headers={})
  request = self.connection.head(url, data, headers)

  Nucleo::Response.new(request)
end
options(url, headers={}) click to toggle source

Helper method to perform an OPTIONS request

@return [Nucleo::Response] Faraday Response Delegator

# File lib/nucleo/client.rb, line 99
def self.options(url, headers={})
  request = self.connection.http_options(url, nil, headers)

  Nucleo::Response.new(request)
end
patch(url, data={}, headers={}) click to toggle source

Helper method to perform an PATCh request

@return [Nucleo::Response] Faraday Response Delegator

# File lib/nucleo/client.rb, line 126
def self.patch(url, data={}, headers={})
  request = self.connection.patch(url, data, headers)

  Nucleo::Response.new(request)
end
post(url, data={}, headers={}) click to toggle source

Helper method to perform an POST request

@return [Nucleo::Response] Faraday Response Delegator

# File lib/nucleo/client.rb, line 108
def self.post(url, data={}, headers={})
  request = self.connection.post(url, data, headers)

  Nucleo::Response.new(request)
end
put(url, data={}, headers={}) click to toggle source

Helper method to perform an PUT request

@return [Nucleo::Response] Faraday Response Delegator

# File lib/nucleo/client.rb, line 117
def self.put(url, data={}, headers={})
  request = self.connection.put(url, data, headers)

  Nucleo::Response.new(request)
end