class Tros::Protocol::Message
Attributes
default_namespace[R]
errors[R]
name[R]
request[R]
response[R]
Public Class Methods
new(name, request, response, errors=nil, names=nil, default_namespace=nil)
click to toggle source
# File lib/tros/protocol.rb 116 def initialize(name, request, response, errors=nil, names=nil, default_namespace=nil) 117 @name = name 118 @default_namespace = default_namespace 119 @request = parse_request(request, names) 120 @response = parse_response(response, names) 121 @errors = parse_errors(errors, names) if errors 122 end
Public Instance Methods
parse_errors(errors, names)
click to toggle source
# File lib/tros/protocol.rb 153 def parse_errors(errors, names) 154 unless errors.is_a?(Array) 155 raise ProtocolParseError, "Errors property not an Array: #{errors}" 156 end 157 Schema.real_parse(errors, names, default_namespace) 158 end
parse_request(request, names)
click to toggle source
# File lib/tros/protocol.rb 137 def parse_request(request, names) 138 unless request.is_a?(Array) 139 raise ProtocolParseError, "Request property not an Array: #{request.inspect}" 140 end 141 Schema::RecordSchema.new(nil, default_namespace, request, names, :request) 142 end
parse_response(response, names)
click to toggle source
# File lib/tros/protocol.rb 144 def parse_response(response, names) 145 if response.is_a?(String) && names 146 fullname = Name.make_fullname(response, default_namespace) 147 return names[fullname] if names.include?(fullname) 148 end 149 150 Schema.real_parse(response, names, default_namespace) 151 end
to_avro(names=Set.new)
click to toggle source
# File lib/tros/protocol.rb 124 def to_avro(names=Set.new) 125 { 126 'request' => request.to_avro(names), 127 'response' => response.to_avro(names) 128 }.tap do |hash| 129 hash['errors'] = errors.to_avro(names) if errors 130 end 131 end
to_s()
click to toggle source
# File lib/tros/protocol.rb 133 def to_s 134 Yajl.dump to_avro 135 end