Class: Avro::Protocol::Message
- Inherits:
-
Object
- Object
- Avro::Protocol::Message
- Defined in:
- lib/avro/protocol.rb
Instance Attribute Summary collapse
-
#default_namespace ⇒ Object
readonly
Returns the value of attribute default_namespace.
-
#doc ⇒ Object
readonly
Returns the value of attribute doc.
-
#errors ⇒ Object
readonly
Returns the value of attribute errors.
-
#name ⇒ Object
readonly
Returns the value of attribute name.
-
#request ⇒ Object
readonly
Returns the value of attribute request.
-
#response ⇒ Object
readonly
Returns the value of attribute response.
Instance Method Summary collapse
-
#initialize(name, request, response, errors = nil, names = nil, default_namespace = nil, doc = nil) ⇒ Message
constructor
A new instance of Message.
- #parse_errors(errors, names) ⇒ Object
- #parse_request(request, names) ⇒ Object
- #parse_response(response, names) ⇒ Object
- #to_avro(names = Set.new) ⇒ Object
- #to_s ⇒ Object
Constructor Details
#initialize(name, request, response, errors = nil, names = nil, default_namespace = nil, doc = nil) ⇒ Message
Returns a new instance of Message.
118 119 120 121 122 123 124 125 |
# File 'lib/avro/protocol.rb', line 118 def initialize(name, request, response, errors=nil, names=nil, default_namespace=nil, doc=nil) @name = name @default_namespace = default_namespace @request = parse_request(request, names) @response = parse_response(response, names) @errors = parse_errors(errors, names) if errors @doc = doc end |
Instance Attribute Details
#default_namespace ⇒ Object (readonly)
Returns the value of attribute default_namespace.
116 117 118 |
# File 'lib/avro/protocol.rb', line 116 def default_namespace @default_namespace end |
#doc ⇒ Object (readonly)
Returns the value of attribute doc.
116 117 118 |
# File 'lib/avro/protocol.rb', line 116 def doc @doc end |
#errors ⇒ Object (readonly)
Returns the value of attribute errors.
116 117 118 |
# File 'lib/avro/protocol.rb', line 116 def errors @errors end |
#name ⇒ Object (readonly)
Returns the value of attribute name.
116 117 118 |
# File 'lib/avro/protocol.rb', line 116 def name @name end |
#request ⇒ Object (readonly)
Returns the value of attribute request.
116 117 118 |
# File 'lib/avro/protocol.rb', line 116 def request @request end |
#response ⇒ Object (readonly)
Returns the value of attribute response.
116 117 118 |
# File 'lib/avro/protocol.rb', line 116 def response @response end |
Instance Method Details
#parse_errors(errors, names) ⇒ Object
157 158 159 160 161 162 |
# File 'lib/avro/protocol.rb', line 157 def parse_errors(errors, names) unless errors.is_a?(Array) raise ProtocolParseError, "Errors property not an Array: #{errors}" end Schema.real_parse(errors, names, default_namespace) end |
#parse_request(request, names) ⇒ Object
141 142 143 144 145 146 |
# File 'lib/avro/protocol.rb', line 141 def parse_request(request, names) unless request.is_a?(Array) raise ProtocolParseError, "Request property not an Array: #{request.inspect}" end Schema::RecordSchema.new(nil, default_namespace, request, names, :request) end |
#parse_response(response, names) ⇒ Object
148 149 150 151 152 153 154 155 |
# File 'lib/avro/protocol.rb', line 148 def parse_response(response, names) if response.is_a?(String) && names fullname = Name.make_fullname(response, default_namespace) return names[fullname] if names.include?(fullname) end Schema.real_parse(response, names, default_namespace) end |
#to_avro(names = Set.new) ⇒ Object
127 128 129 130 131 132 133 134 135 |
# File 'lib/avro/protocol.rb', line 127 def to_avro(names=Set.new) { 'request' => request.to_avro(names), 'response' => response.to_avro(names) }.tap do |hash| hash['errors'] = errors.to_avro(names) if errors hash['doc'] = @doc if @doc end end |
#to_s ⇒ Object
137 138 139 |
# File 'lib/avro/protocol.rb', line 137 def to_s Yajl.dump to_avro end |