class Avro::Protocol::Message

Attributes

default_namespace[R]
doc[R]
errors[R]
name[R]
request[R]
response[R]

Public Class Methods

new(name, request, response, errors=nil, names=nil, default_namespace=nil, doc=nil) click to toggle source
    # File lib/avro/protocol.rb
119 def initialize(name, request, response, errors=nil, names=nil, default_namespace=nil, doc=nil)
120   @name = name
121   @default_namespace = default_namespace
122   @request = parse_request(request, names)
123   @response = parse_response(response, names)
124   @errors = parse_errors(errors, names) if errors
125   @doc = doc
126 end

Public Instance Methods

parse_errors(errors, names) click to toggle source
    # File lib/avro/protocol.rb
158 def parse_errors(errors, names)
159   unless errors.is_a?(Array)
160     raise ProtocolParseError, "Errors property not an Array: #{errors}"
161   end
162   Schema.real_parse(errors, names, default_namespace)
163 end
parse_request(request, names) click to toggle source
    # File lib/avro/protocol.rb
142 def parse_request(request, names)
143   unless request.is_a?(Array)
144     raise ProtocolParseError, "Request property not an Array: #{request.inspect}"
145   end
146   Schema::RecordSchema.new(nil, default_namespace, request, names, :request)
147 end
parse_response(response, names) click to toggle source
    # File lib/avro/protocol.rb
149 def parse_response(response, names)
150   if response.is_a?(String) && names
151     fullname = Name.make_fullname(response, default_namespace)
152     return names[fullname] if names.include?(fullname)
153   end
154 
155   Schema.real_parse(response, names, default_namespace)
156 end
to_avro(names=Set.new) click to toggle source
    # File lib/avro/protocol.rb
128 def to_avro(names=Set.new)
129   {
130     'request' => request.to_avro(names),
131     'response' => response.to_avro(names)
132   }.tap do |hash|
133     hash['errors'] = errors.to_avro(names) if errors
134     hash['doc'] = @doc if @doc
135   end
136 end
to_s() click to toggle source
    # File lib/avro/protocol.rb
138 def to_s
139   Yajl.dump to_avro
140 end