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