Module: JsonRpcErrors

Included in:
JsonRpcClient, JsonRpcServer
Defined in:
lib/jsonrpc2.0/Errors.rb

Defined Under Namespace

Classes: BaseApplicationError, BaseError, BaseImplementationError

Constant Summary collapse

ImplementationErrors =
{'ParseError' => -32700, 'InvalidRequest' => -32600, 'MethodNotFound' => -32601, 'InvalidParams' => -32602, 'InternalError' => -32603, 'ApplicationError' => -32550}
ApplicationErrors =
{}

Class Method Summary collapse

Class Method Details

.add_application_errors(inErrors) ⇒ Object



48
49
50
51
# File 'lib/jsonrpc2.0/Errors.rb', line 48

def self.add_application_errors(inErrors)
	ApplicationErrors.merge!(inErrors)
	create_error_classes(inErrors, BaseApplicationError)
end

.create_error_classes(inErrors, inBaseClass) ⇒ Object



53
54
55
56
57
58
59
60
# File 'lib/jsonrpc2.0/Errors.rb', line 53

def self.create_error_classes(inErrors, inBaseClass)
	inErrors.each do |errorName, errorCode|
		errorClass = Class::new(inBaseClass) do
			const_set('CODE', errorCode)
		end
		const_set(errorName, errorClass)
	end
end

.error_from_hash(inHash, inIsImplementationError = false) ⇒ Object



36
37
38
39
40
41
42
43
44
45
46
# File 'lib/jsonrpc2.0/Errors.rb', line 36

def self.error_from_hash(inHash, inIsImplementationError = false)
	if inIsImplementationError
		errorList = ImplementationErrors
	else
		errorList = ApplicationErrors
	end

	errorName = errorList.key(inHash['code'])
	errorClass = const_get(errorName)
	errorClass.new(inHash['message'], inHash['data'])
end