class Wrappi::Executer
Attributes
cacher[R]
endpoint[R]
retryer[R]
Public Class Methods
call(*args)
click to toggle source
# File lib/wrappi/executer.rb, line 4 def self.call(*args) new(*args).call end
new(endpoint)
click to toggle source
# File lib/wrappi/executer.rb, line 9 def initialize(endpoint) @endpoint = endpoint @retryer = Retryer.new(endpoint) @cacher = Cacher.new(endpoint) end
Public Instance Methods
call()
click to toggle source
# File lib/wrappi/executer.rb, line 15 def call if cache? cacher.call do request_with_retry end else request_with_retry end end
Private Instance Methods
around_request()
click to toggle source
# File lib/wrappi/executer.rb, line 37 def around_request endpoint.around_request || proc { |res, endpoint| res.call } end
cache?()
click to toggle source
# File lib/wrappi/executer.rb, line 27 def cache? cacher.cache? end
make_request()
click to toggle source
# File lib/wrappi/executer.rb, line 41 def make_request res = Response.new(endpoint.class) { Request.new(endpoint).call } around_request.call(res, endpoint) res.called? ? res : UncalledRequest.new end
request_with_retry()
click to toggle source
# File lib/wrappi/executer.rb, line 31 def request_with_retry retryer.call do make_request end end