Module: Rester

Defined in:
lib/rester.rb,
lib/rester/utils.rb,
lib/rester/client.rb,
lib/rester/errors.rb,
lib/rester/railtie.rb,
lib/rester/service.rb,
lib/rester/version.rb,
lib/rester/utils/rspec.rb,
lib/rester/client/adapters.rb,
lib/rester/client/resource.rb,
lib/rester/client/response.rb,
lib/rester/service/request.rb,
lib/rester/utils/stub_file.rb,
lib/rester/service/resource.rb,
lib/rester/client/middleware.rb,
lib/rester/service/middleware.rb,
lib/rester/utils/logger_wrapper.rb,
lib/rester/utils/circuit_breaker.rb,
lib/rester/client/middleware/base.rb,
lib/rester/client/adapters/adapter.rb,
lib/rester/service/middleware/base.rb,
lib/rester/service/middleware/ping.rb,
lib/rester/service/resource/params.rb,
lib/rester/client/adapters/http_adapter.rb,
lib/rester/client/adapters/stub_adapter.rb,
lib/rester/service/middleware/new_relic.rb,
lib/rester/client/adapters/local_adapter.rb,
lib/rester/client/middleware/request_handler.rb,
lib/rester/service/middleware/error_handling.rb,
lib/rester/service/middleware/request_handler.rb,
lib/rester/client/adapters/http_adapter/connection.rb

Defined Under Namespace

Modules: Errors, Utils Classes: Client, Railtie, Service

Constant Summary collapse

VERSION =
'0.5.7'

Class Method Summary collapse

Class Method Details

.connect(service, params = {}) ⇒ Object



31
32
33
34
35
36
# 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_idObject



81
82
83
# File 'lib/rester.rb', line 81

def correlation_id
  request_info && request_info[:correlation_id]
end

.correlation_id=(correlation_id) ⇒ Object



85
86
87
# File 'lib/rester.rb', line 85

def correlation_id=(correlation_id)
  request_info[:correlation_id] = correlation_id
end

.load_tasksObject



25
26
27
28
29
# File 'lib/rester.rb', line 25

def load_tasks
  Dir[
    File.expand_path("../../tasks", __FILE__) + '/**.rake'
  ].each { |rake_file| load rake_file }
end

.loggerObject



17
18
19
# File 'lib/rester.rb', line 17

def logger
  @_logger ||= Utils::LoggerWrapper.new
end

.logger=(new_logger) ⇒ Object



21
22
23
# File 'lib/rester.rb', line 21

def logger=(new_logger)
  @_logger = Utils::LoggerWrapper.new(new_logger)
end

.processing_request?Boolean

Returns:

  • (Boolean)


57
58
59
# File 'lib/rester.rb', line 57

def processing_request?
  !!request_info
end

.requestObject



73
74
75
# File 'lib/rester.rb', line 73

def request
  request_info[:request]
end

.request=(request) ⇒ Object



77
78
79
# File 'lib/rester.rb', line 77

def request=(request)
  request_info[:request] = request
end

.request_infoObject



61
62
63
# File 'lib/rester.rb', line 61

def request_info
  @_request_infos[Thread.current.object_id]
end

.request_info=(info) ⇒ Object



65
66
67
68
69
70
71
# 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_nameObject



38
39
40
# File 'lib/rester.rb', line 38

def service_name
  @_service_name ||= _get_service_name
end

.service_name=(name) ⇒ Object



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

def service_name=(name)
  @_service_name = name
end

.wrap_requestObject

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



48
49
50
51
52
53
54
55
# 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