Module: PostgresPR::NoticeErrorMixin
- Included in:
- ErrorResponse, NoticeResponse
- Defined in:
- lib/postgres-pr/message.rb
Instance Attribute Summary collapse
-
#field_type ⇒ Object
Returns the value of attribute field_type.
-
#field_values ⇒ Object
Returns the value of attribute field_values.
Instance Method Summary collapse
Instance Attribute Details
#field_type ⇒ Object
Returns the value of attribute field_type.
312 313 314 |
# File 'lib/postgres-pr/message.rb', line 312 def field_type @field_type end |
#field_values ⇒ Object
Returns the value of attribute field_values.
312 313 314 |
# File 'lib/postgres-pr/message.rb', line 312 def field_values @field_values end |
Instance Method Details
#dump ⇒ Object
319 320 321 322 323 324 325 326 327 328 329 330 331 |
# File 'lib/postgres-pr/message.rb', line 319 def dump raise ArgumentError if @field_type == 0 and not @field_values.empty? sz = 1 sz += @field_values.inject(1) {|sum, fld| sum + fld.size + 1} unless @field_type == 0 super(sz) do |buffer| buffer.write_byte(@field_type) break if @field_type == 0 @field_values.each {|fld| buffer.write_cstring(fld) } buffer.write_byte(0) end end |
#initialize(field_type = 0, field_values = []) ⇒ Object
314 315 316 317 |
# File 'lib/postgres-pr/message.rb', line 314 def initialize(field_type=0, field_values=[]) raise ArgumentError if field_type == 0 and not field_values.empty? @field_type, @field_values = field_type, field_values end |
#parse(buffer) ⇒ Object
333 334 335 336 337 338 339 340 341 342 343 344 |
# File 'lib/postgres-pr/message.rb', line 333 def parse(buffer) super do @field_type = buffer.read_byte break if @field_type == 0 @field_values = [] while buffer.position < buffer.size-1 @field_values << buffer.read_cstring end terminator = buffer.read_byte raise ParseError unless terminator == 0 end end |