module DDP::Server::Protocol::RPC

Protocol regarding remote procedure calls

Constants

NO_RESULT

Public Instance Methods

handle_method(id, method, params) click to toggle source
# File lib/ddp/server/protocol/rpc.rb, line 18
def handle_method(id, method, params)
        params ||= []
        result = api.invoke_rpc(method, *params)
        send_result(id, result)
rescue => e
        send_error_result(id, e)
end
handle_rpc() click to toggle source
# File lib/ddp/server/protocol/rpc.rb, line 8
def handle_rpc
        case @message['msg']
        when 'method'
                handle_method(@message['id'], @message['method'], @message['params'])
                true
        else
                false
        end
end
send_error_result(id, error) click to toggle source
# File lib/ddp/server/protocol/rpc.rb, line 32
def send_error_result(id, error)
        message = { msg: 'result', id: id }
        message['error'] = {
                error: error.class.name,
                reason: error.message,
                details: "Backtrace: \n#{error.backtrace.join("\n")}"
        }
        write_message(message)
end
send_result(id, result = NO_RESULT) click to toggle source
# File lib/ddp/server/protocol/rpc.rb, line 26
def send_result(id, result = NO_RESULT)
        message = { msg: 'result', id: id }
        message['result'] = result unless result == NO_RESULT
        write_message(message)
end
send_updated(methods) click to toggle source
# File lib/ddp/server/protocol/rpc.rb, line 42
def send_updated(methods)
        write_message msg: 'updated', methods: methods
end