module Rester

Constants

VERSION

Public Class Methods

connect(service, params = {}) click to toggle source
# File lib/rester.rb, line 31
def connect(service, params = {})
  _install_middleware_if_needed
  adapter_opts = Client::Adapters.extract_opts(params)
  adapter = Client::Adapters.connect(service, adapter_opts)
  Client.new(adapter, params)
end
correlation_id() click to toggle source
# File lib/rester.rb, line 81
def correlation_id
  request_info && request_info[:correlation_id]
end
correlation_id=(correlation_id) click to toggle source
# File lib/rester.rb, line 85
def correlation_id=(correlation_id)
  request_info[:correlation_id] = correlation_id
end
load_tasks() click to toggle source
# File lib/rester.rb, line 25
def load_tasks
  Dir[
    File.expand_path("../../tasks", __FILE__) + '/**.rake'
  ].each { |rake_file| load rake_file }
end
logger() click to toggle source
# File lib/rester.rb, line 17
def logger
  @_logger ||= Utils::LoggerWrapper.new
end
logger=(new_logger) click to toggle source
# File lib/rester.rb, line 21
def logger=(new_logger)
  @_logger = Utils::LoggerWrapper.new(new_logger)
end
processing_request?() click to toggle source
# File lib/rester.rb, line 57
def processing_request?
  !!request_info
end
request() click to toggle source
# File lib/rester.rb, line 73
def request
  request_info[:request]
end
request=(request) click to toggle source
# File lib/rester.rb, line 77
def request=(request)
  request_info[:request] = request
end
request_info() click to toggle source
# File lib/rester.rb, line 61
def request_info
  @_request_infos[Thread.current.object_id]
end
request_info=(info) click to toggle source
# File lib/rester.rb, line 65
def request_info=(info)
  if info.nil?
    @_request_infos.delete(Thread.current.object_id)
  else
    @_request_infos[Thread.current.object_id] = info
  end
end
service_name() click to toggle source
# File lib/rester.rb, line 38
def service_name
  @_service_name ||= _get_service_name
end
service_name=(name) click to toggle source
# File lib/rester.rb, line 42
def service_name=(name)
  @_service_name = name
end
wrap_request() { || ... } click to toggle source

Used to manage the thread-safe `Rester.request_info` object.

# File lib/rester.rb, line 48
def wrap_request
  outer_most = !request_info

  self.request_info = {} if outer_most
  yield
ensure
  self.request_info = nil if outer_most
end

Private Class Methods

_get_service_name() click to toggle source
# File lib/rester.rb, line 91
def _get_service_name
  if defined?(Rails) && Rails.application
    Rails.application.class.parent_name
  else
    services = Service.descendants
    fail "Define a service name" if services.empty?
    services.first.service_name
  end
end
_install_middleware_if_needed() click to toggle source

On the first call, installs the Client RequestHandler middleware into the host application. Subsequent calls will do nothing.

# File lib/rester.rb, line 104
def _install_middleware_if_needed
  return if @__middleware_installed
  @__middleware_installed = true

  if defined?(Rails) && Rails.respond_to?(:application) && Rails.application
    Rails.configuration.middleware.use(Client::Middleware::RequestHandler)
  end
end