module Saorin::Client::Base
Attributes
options[R]
Public Class Methods
new(options = {})
click to toggle source
# File lib/saorin/client/base.rb, line 21 def initialize(options = {}) @options = options end
Public Instance Methods
apply(request)
click to toggle source
# File lib/saorin/client/base.rb, line 33 def apply(request) response = send_request dump_request(request) content = process_response response raise content if content.is_a?(Saorin::RPCError) content end
batch()
click to toggle source
# File lib/saorin/client/base.rb, line 63 def batch Batch.new self end
call(method, *args)
click to toggle source
# File lib/saorin/client/base.rb, line 25 def call(method, *args) apply Saorin::Request.new(method, args, :id => uuid) end
notify(method, *args)
click to toggle source
# File lib/saorin/client/base.rb, line 29 def notify(method, *args) apply Saorin::Request.new(method, args) end
Protected Instance Methods
dump_request(request)
click to toggle source
# File lib/saorin/client/base.rb, line 89 def dump_request(request) formatter.dump request end
handle_response(hash)
click to toggle source
# File lib/saorin/client/base.rb, line 105 def handle_response(hash) return nil if hash.nil? response = Response.from_hash(hash) response.validate to_content response end
parse_response(content)
click to toggle source
# File lib/saorin/client/base.rb, line 84 def parse_response(content) return nil if content.nil? || content.empty? formatter.load content end
process_response(content)
click to toggle source
# File lib/saorin/client/base.rb, line 73 def process_response(content) response = parse_response content if response.is_a?(::Array) response.map { |res| handle_response res } else handle_response response end rescue => e raise Saorin::InvalidResponse, e.to_s end
send_request(content)
click to toggle source
# File lib/saorin/client/base.rb, line 69 def send_request(content) raise NotImplementedError end
to_content(response)
click to toggle source
# File lib/saorin/client/base.rb, line 93 def to_content(response) return nil if response.nil? if response.error? code, message, data = response.error.values_at('code', 'message', 'data') error_class = Saorin.code_to_error code raise Error, 'unknown error code' unless error_class error_class.new message, :code => code, :data => data else response.result end end