class Xapixctl::PhoenixClient::ResultHandler

Public Class Methods

new(default_success_handler:, default_error_handler:) { |self| ... } click to toggle source
# File lib/xapixctl/phoenix_client/result_handler.rb, line 6
def initialize(default_success_handler:, default_error_handler:)
  @success_handler = default_success_handler
  @error_handler = default_error_handler
  @result_handler = nil
  yield self if block_given?
end

Public Instance Methods

formatter(proc) click to toggle source
# File lib/xapixctl/phoenix_client/result_handler.rb, line 19
def formatter(proc); @formatter = proc; self; end
on_error(&block) click to toggle source
# File lib/xapixctl/phoenix_client/result_handler.rb, line 15
def on_error(&block); @error_handler = block; self; end
on_success(&block) click to toggle source
# File lib/xapixctl/phoenix_client/result_handler.rb, line 13
def on_success(&block); @success_handler = block; self; end
prepare_data(proc) click to toggle source
# File lib/xapixctl/phoenix_client/result_handler.rb, line 17
def prepare_data(proc); @result_handler = proc; self; end
run() { || ... } click to toggle source
# File lib/xapixctl/phoenix_client/result_handler.rb, line 21
def run
  res = yield
  res = res.present? ? JSON.parse(res) : res
  res = @result_handler ? @result_handler.call(res) : res
  res = @formatter ? @formatter.call(res) : res
  @success_handler.call(res)
rescue RestClient::Exception => err
  response = JSON.parse(err.response) rescue {}
  @error_handler.call(err, response)
rescue SocketError, Errno::ECONNREFUSED => err
  @error_handler.call(err, nil)
end