class PipeRpc::Client::Request::ErrorResponse

Public Class Methods

new(request, body) click to toggle source
Calls superclass method PipeRpc::ErrorResponse::new
# File lib/pipe_rpc/client_request_error_response.rb, line 5
def initialize(request, body)
  @request = request
  super body
end

Public Instance Methods

to_result() click to toggle source
# File lib/pipe_rpc/client_request_error_response.rb, line 10
def to_result
  case @code
  when -32601 then no_method_error
  when -32602 then argument_error
  when -32603 then internal_error
  when -32604 then no_server_error
  when -32605 then reflected_error
  else unknown_error
  end
end

Private Instance Methods

argument_error() click to toggle source
# File lib/pipe_rpc/client_request_error_response.rb, line 27
def argument_error
  ArgumentError.new(@data.fetch(:message))
end
internal_error() click to toggle source
# File lib/pipe_rpc/client_request_error_response.rb, line 35
def internal_error
  InternalError.new(@data[:message]).tap do |error|
    error.set_backtrace(@data[:backtrace]) if error.respond_to? :set_backtrace
  end
end
no_method_error() click to toggle source
# File lib/pipe_rpc/client_request_error_response.rb, line 23
def no_method_error
  NoMethodError.new("undefined method `#{@data.fetch(:method)}' for #{@request.server}")
end
no_server_error() click to toggle source
# File lib/pipe_rpc/client_request_error_response.rb, line 31
def no_server_error
  NoServerError.new("undefined server `#{@request.server}'")
end
reflected_error() click to toggle source
# File lib/pipe_rpc/client_request_error_response.rb, line 41
def reflected_error
  ReflectedError.new(@data[:message]).tap do |error|
    error.set_backtrace(@data[:backtrace]) if error.respond_to? :set_backtrace
  end
end
unknown_error() click to toggle source
# File lib/pipe_rpc/client_request_error_response.rb, line 47
def unknown_error
  UnknownError.new(@data[:message])
end