amq-protocol 0.9.4 → 0.9.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/codegen_helpers.py +6 -14
- data/lib/amq/protocol/client.rb +182 -317
- data/lib/amq/protocol/version.rb +1 -1
- data/spec/amq/protocol/exchange_spec.rb +18 -4
- metadata +4 -4
    
        data/codegen_helpers.py
    CHANGED
    
    | @@ -4,11 +4,11 @@ def genSingleEncode(spec, cValue, unresolved_domain): | |
| 4 4 | 
             
                buffer = []
         | 
| 5 5 | 
             
                type = spec.resolveDomain(unresolved_domain)
         | 
| 6 6 | 
             
                if type == 'shortstr':
         | 
| 7 | 
            -
                    buffer.append("buffer << %s.bytesize.chr" % (cValue,))
         | 
| 8 | 
            -
                    buffer.append("buffer << %s" % (cValue,))
         | 
| 7 | 
            +
                    buffer.append("buffer << %s.to_s.bytesize.chr" % (cValue,))
         | 
| 8 | 
            +
                    buffer.append("buffer << %s.to_s" % (cValue,))
         | 
| 9 9 | 
             
                elif type == 'longstr':
         | 
| 10 | 
            -
                    buffer.append("buffer << [%s.bytesize].pack(PACK_UINT32)" % (cValue,))
         | 
| 11 | 
            -
                    buffer.append("buffer << %s" % (cValue,))
         | 
| 10 | 
            +
                    buffer.append("buffer << [%s.to_s.bytesize].pack(PACK_UINT32)" % (cValue,))
         | 
| 11 | 
            +
                    buffer.append("buffer << %s.to_s" % (cValue,))
         | 
| 12 12 | 
             
                elif type == 'octet':
         | 
| 13 13 | 
             
                    buffer.append("buffer << [%s].pack(PACK_CHAR)" % (cValue,))
         | 
| 14 14 | 
             
                elif type == 'short':
         | 
| @@ -87,17 +87,9 @@ def genSingleSimpleDecode(spec, field): | |
| 87 87 | 
             
                type = spec.resolveDomain(unresolved_domain)
         | 
| 88 88 | 
             
                buffer = []
         | 
| 89 89 | 
             
                if type == 'shortstr':
         | 
| 90 | 
            -
                     | 
| 91 | 
            -
                    # buffer.append("result = data[offset..-1]")
         | 
| 92 | 
            -
                    # buffer.append("raise 'Bad size: #{length} expected, got #{result.bytesize}' if result.bytesize != length")
         | 
| 93 | 
            -
                    # buffer.append("result")
         | 
| 94 | 
            -
                    buffer.append("data")
         | 
| 90 | 
            +
                    buffer.append("data.to_s")
         | 
| 95 91 | 
             
                elif type == 'longstr':
         | 
| 96 | 
            -
                     | 
| 97 | 
            -
                    # buffer.append("result = data[offset..-1]")
         | 
| 98 | 
            -
                    # buffer.append("raise 'Bad size: #{length} expected, got #{result.bytesize}' if result.bytesize != length")
         | 
| 99 | 
            -
                    # buffer.append("result")
         | 
| 100 | 
            -
                    buffer.append("data")
         | 
| 92 | 
            +
                    buffer.append("data.to_s")
         | 
| 101 93 | 
             
                elif type == 'octet':
         | 
| 102 94 | 
             
                    buffer.append("data.unpack(PACK_CHAR).first")
         | 
| 103 95 | 
             
                elif type == 'short':
         | 
    
        data/lib/amq/protocol/client.rb
    CHANGED
    
    | @@ -17,19 +17,17 @@ module AMQ | |
| 17 17 | 
             
                # caching
         | 
| 18 18 | 
             
                EMPTY_STRING = "".freeze
         | 
| 19 19 |  | 
| 20 | 
            -
                PACK_CHAR               =  | 
| 21 | 
            -
                PACK_UINT16             =  | 
| 22 | 
            -
                PACK_UINT16_X2          =  | 
| 23 | 
            -
                PACK_UINT32             =  | 
| 24 | 
            -
                PACK_UINT32_X2          =  | 
| 25 | 
            -
                PACK_INT64              =  | 
| 26 | 
            -
                PACK_UCHAR_UINT32       =  | 
| 27 | 
            -
                PACK_CHAR_UINT16_UINT32 =  | 
| 28 | 
            -
             | 
| 29 | 
            -
                PACK_32BIT_FLOAT        =  | 
| 30 | 
            -
                PACK_64BIT_FLOAT        =  | 
| 31 | 
            -
             | 
| 32 | 
            -
             | 
| 20 | 
            +
                PACK_CHAR               = "C".freeze
         | 
| 21 | 
            +
                PACK_UINT16             = "n".freeze
         | 
| 22 | 
            +
                PACK_UINT16_X2          = "n2".freeze
         | 
| 23 | 
            +
                PACK_UINT32             = "N".freeze
         | 
| 24 | 
            +
                PACK_UINT32_X2          = "N2".freeze
         | 
| 25 | 
            +
                PACK_INT64              = "q".freeze
         | 
| 26 | 
            +
                PACK_UCHAR_UINT32       = "CN".freeze
         | 
| 27 | 
            +
                PACK_CHAR_UINT16_UINT32 = "cnN".freeze
         | 
| 28 | 
            +
             | 
| 29 | 
            +
                PACK_32BIT_FLOAT        = "f".freeze
         | 
| 30 | 
            +
                PACK_64BIT_FLOAT        = "d".freeze
         | 
| 33 31 |  | 
| 34 32 | 
             
                # @return [Array] Collection of subclasses of AMQ::Protocol::Class.
         | 
| 35 33 | 
             
                def self.classes
         | 
| @@ -170,9 +168,8 @@ module AMQ | |
| 170 168 | 
             
                  VALUE = 541
         | 
| 171 169 | 
             
                end
         | 
| 172 170 |  | 
| 173 | 
            -
             | 
| 174 | 
            -
                #  | 
| 175 | 
            -
                # as we don't actually need any per-instance state.
         | 
| 171 | 
            +
                # We don"t instantiate the following classes,
         | 
| 172 | 
            +
                # as we don"t actually need any per-instance state.
         | 
| 176 173 | 
             
                # Also, this is pretty low-level functionality,
         | 
| 177 174 | 
             
                # hence it should have a reasonable performance.
         | 
| 178 175 | 
             
                # As everyone knows, garbage collector in MRI performs
         | 
| @@ -180,10 +177,10 @@ module AMQ | |
| 180 177 | 
             
                # not creating any objects, but only use class as
         | 
| 181 178 | 
             
                # a struct. Creating classes is quite expensive though,
         | 
| 182 179 | 
             
                # but here the inheritance comes handy and mainly
         | 
| 183 | 
            -
                # as we can | 
| 184 | 
            -
                # we can | 
| 180 | 
            +
                # as we can"t simply make a reference to a function,
         | 
| 181 | 
            +
                # we can"t use a hash or an object. I"ve been also
         | 
| 185 182 | 
             
                # considering to have just a bunch of methods, but
         | 
| 186 | 
            -
                # here | 
| 183 | 
            +
                # here"s the problem, that after we"d require this file,
         | 
| 187 184 | 
             
                # all these methods would become global which would
         | 
| 188 185 | 
             
                # be a bad, bad thing to do.
         | 
| 189 186 | 
             
                class Class
         | 
| @@ -280,8 +277,6 @@ module AMQ | |
| 280 277 | 
             
                  @name = "connection"
         | 
| 281 278 | 
             
                  @method_id = 10
         | 
| 282 279 |  | 
| 283 | 
            -
             | 
| 284 | 
            -
             | 
| 285 280 | 
             
                  class Start < Protocol::Method
         | 
| 286 281 | 
             
                    @name = "connection.start"
         | 
| 287 282 | 
             
                    @method_id = 10
         | 
| @@ -321,8 +316,6 @@ module AMQ | |
| 321 316 | 
             
                    def self.has_content?
         | 
| 322 317 | 
             
                      false
         | 
| 323 318 | 
             
                    end
         | 
| 324 | 
            -
             | 
| 325 | 
            -
             | 
| 326 319 | 
             
                  end
         | 
| 327 320 |  | 
| 328 321 | 
             
                  class StartOk < Protocol::Method
         | 
| @@ -331,27 +324,25 @@ module AMQ | |
| 331 324 | 
             
                    @index = 0x000A000B # 10, 11, 655371
         | 
| 332 325 | 
             
                    @packed_indexes = [10, 11].pack(PACK_UINT16_X2).freeze
         | 
| 333 326 |  | 
| 334 | 
            -
             | 
| 335 327 | 
             
                    def self.has_content?
         | 
| 336 328 | 
             
                      false
         | 
| 337 329 | 
             
                    end
         | 
| 338 330 |  | 
| 339 331 | 
             
                    # @return
         | 
| 340 | 
            -
                    # [ | 
| 332 | 
            +
                    # ["client_properties = nil", "mechanism = "PLAIN"", "response = nil", "locale = "en_US""]
         | 
| 341 333 | 
             
                    def self.encode(client_properties, mechanism, response, locale)
         | 
| 342 334 | 
             
                      channel = 0
         | 
| 343 | 
            -
                      buffer =  | 
| 335 | 
            +
                      buffer = ""
         | 
| 344 336 | 
             
                      buffer << @packed_indexes
         | 
| 345 337 | 
             
                      buffer << AMQ::Protocol::Table.encode(client_properties)
         | 
| 346 | 
            -
                      buffer << mechanism.bytesize.chr
         | 
| 347 | 
            -
                      buffer << mechanism
         | 
| 348 | 
            -
                      buffer << [response.bytesize].pack(PACK_UINT32)
         | 
| 349 | 
            -
                      buffer << response
         | 
| 350 | 
            -
                      buffer << locale.bytesize.chr
         | 
| 351 | 
            -
                      buffer << locale
         | 
| 338 | 
            +
                      buffer << mechanism.to_s.bytesize.chr
         | 
| 339 | 
            +
                      buffer << mechanism.to_s
         | 
| 340 | 
            +
                      buffer << [response.to_s.bytesize].pack(PACK_UINT32)
         | 
| 341 | 
            +
                      buffer << response.to_s
         | 
| 342 | 
            +
                      buffer << locale.to_s.bytesize.chr
         | 
| 343 | 
            +
                      buffer << locale.to_s
         | 
| 352 344 | 
             
                      MethodFrame.new(buffer, channel)
         | 
| 353 345 | 
             
                    end
         | 
| 354 | 
            -
             | 
| 355 346 | 
             
                  end
         | 
| 356 347 |  | 
| 357 348 | 
             
                  class Secure < Protocol::Method
         | 
| @@ -378,8 +369,6 @@ module AMQ | |
| 378 369 | 
             
                    def self.has_content?
         | 
| 379 370 | 
             
                      false
         | 
| 380 371 | 
             
                    end
         | 
| 381 | 
            -
             | 
| 382 | 
            -
             | 
| 383 372 | 
             
                  end
         | 
| 384 373 |  | 
| 385 374 | 
             
                  class SecureOk < Protocol::Method
         | 
| @@ -388,22 +377,20 @@ module AMQ | |
| 388 377 | 
             
                    @index = 0x000A0015 # 10, 21, 655381
         | 
| 389 378 | 
             
                    @packed_indexes = [10, 21].pack(PACK_UINT16_X2).freeze
         | 
| 390 379 |  | 
| 391 | 
            -
             | 
| 392 380 | 
             
                    def self.has_content?
         | 
| 393 381 | 
             
                      false
         | 
| 394 382 | 
             
                    end
         | 
| 395 383 |  | 
| 396 384 | 
             
                    # @return
         | 
| 397 | 
            -
                    # [ | 
| 385 | 
            +
                    # ["response = nil"]
         | 
| 398 386 | 
             
                    def self.encode(response)
         | 
| 399 387 | 
             
                      channel = 0
         | 
| 400 | 
            -
                      buffer =  | 
| 388 | 
            +
                      buffer = ""
         | 
| 401 389 | 
             
                      buffer << @packed_indexes
         | 
| 402 | 
            -
                      buffer << [response.bytesize].pack(PACK_UINT32)
         | 
| 403 | 
            -
                      buffer << response
         | 
| 390 | 
            +
                      buffer << [response.to_s.bytesize].pack(PACK_UINT32)
         | 
| 391 | 
            +
                      buffer << response.to_s
         | 
| 404 392 | 
             
                      MethodFrame.new(buffer, channel)
         | 
| 405 393 | 
             
                    end
         | 
| 406 | 
            -
             | 
| 407 394 | 
             
                  end
         | 
| 408 395 |  | 
| 409 396 | 
             
                  class Tune < Protocol::Method
         | 
| @@ -434,8 +421,6 @@ module AMQ | |
| 434 421 | 
             
                    def self.has_content?
         | 
| 435 422 | 
             
                      false
         | 
| 436 423 | 
             
                    end
         | 
| 437 | 
            -
             | 
| 438 | 
            -
             | 
| 439 424 | 
             
                  end
         | 
| 440 425 |  | 
| 441 426 | 
             
                  class TuneOk < Protocol::Method
         | 
| @@ -444,23 +429,21 @@ module AMQ | |
| 444 429 | 
             
                    @index = 0x000A001F # 10, 31, 655391
         | 
| 445 430 | 
             
                    @packed_indexes = [10, 31].pack(PACK_UINT16_X2).freeze
         | 
| 446 431 |  | 
| 447 | 
            -
             | 
| 448 432 | 
             
                    def self.has_content?
         | 
| 449 433 | 
             
                      false
         | 
| 450 434 | 
             
                    end
         | 
| 451 435 |  | 
| 452 436 | 
             
                    # @return
         | 
| 453 | 
            -
                    # [ | 
| 437 | 
            +
                    # ["channel_max = false", "frame_max = false", "heartbeat = false"]
         | 
| 454 438 | 
             
                    def self.encode(channel_max, frame_max, heartbeat)
         | 
| 455 439 | 
             
                      channel = 0
         | 
| 456 | 
            -
                      buffer =  | 
| 440 | 
            +
                      buffer = ""
         | 
| 457 441 | 
             
                      buffer << @packed_indexes
         | 
| 458 442 | 
             
                      buffer << [channel_max].pack(PACK_UINT16)
         | 
| 459 443 | 
             
                      buffer << [frame_max].pack(PACK_UINT32)
         | 
| 460 444 | 
             
                      buffer << [heartbeat].pack(PACK_UINT16)
         | 
| 461 445 | 
             
                      MethodFrame.new(buffer, channel)
         | 
| 462 446 | 
             
                    end
         | 
| 463 | 
            -
             | 
| 464 447 | 
             
                  end
         | 
| 465 448 |  | 
| 466 449 | 
             
                  class Open < Protocol::Method
         | 
| @@ -469,29 +452,27 @@ module AMQ | |
| 469 452 | 
             
                    @index = 0x000A0028 # 10, 40, 655400
         | 
| 470 453 | 
             
                    @packed_indexes = [10, 40].pack(PACK_UINT16_X2).freeze
         | 
| 471 454 |  | 
| 472 | 
            -
             | 
| 473 455 | 
             
                    def self.has_content?
         | 
| 474 456 | 
             
                      false
         | 
| 475 457 | 
             
                    end
         | 
| 476 458 |  | 
| 477 459 | 
             
                    # @return
         | 
| 478 | 
            -
                    # [ | 
| 460 | 
            +
                    # ["virtual_host = "/"", "capabilities = EMPTY_STRING", "insist = false"]
         | 
| 479 461 | 
             
                    def self.encode(virtual_host)
         | 
| 480 462 | 
             
                      capabilities = EMPTY_STRING
         | 
| 481 463 | 
             
                      insist = false
         | 
| 482 464 | 
             
                      channel = 0
         | 
| 483 | 
            -
                      buffer =  | 
| 465 | 
            +
                      buffer = ""
         | 
| 484 466 | 
             
                      buffer << @packed_indexes
         | 
| 485 | 
            -
                      buffer << virtual_host.bytesize.chr
         | 
| 486 | 
            -
                      buffer << virtual_host
         | 
| 487 | 
            -
                      buffer << capabilities.bytesize.chr
         | 
| 488 | 
            -
                      buffer << capabilities
         | 
| 467 | 
            +
                      buffer << virtual_host.to_s.bytesize.chr
         | 
| 468 | 
            +
                      buffer << virtual_host.to_s
         | 
| 469 | 
            +
                      buffer << capabilities.to_s.bytesize.chr
         | 
| 470 | 
            +
                      buffer << capabilities.to_s
         | 
| 489 471 | 
             
                      bit_buffer = 0
         | 
| 490 472 | 
             
                      bit_buffer = bit_buffer | (1 << 0) if insist
         | 
| 491 473 | 
             
                      buffer << [bit_buffer].pack(PACK_CHAR)
         | 
| 492 474 | 
             
                      MethodFrame.new(buffer, channel)
         | 
| 493 475 | 
             
                    end
         | 
| 494 | 
            -
             | 
| 495 476 | 
             
                  end
         | 
| 496 477 |  | 
| 497 478 | 
             
                  class OpenOk < Protocol::Method
         | 
| @@ -518,8 +499,6 @@ module AMQ | |
| 518 499 | 
             
                    def self.has_content?
         | 
| 519 500 | 
             
                      false
         | 
| 520 501 | 
             
                    end
         | 
| 521 | 
            -
             | 
| 522 | 
            -
             | 
| 523 502 | 
             
                  end
         | 
| 524 503 |  | 
| 525 504 | 
             
                  class Close < Protocol::Method
         | 
| @@ -557,19 +536,18 @@ module AMQ | |
| 557 536 | 
             
                    end
         | 
| 558 537 |  | 
| 559 538 | 
             
                    # @return
         | 
| 560 | 
            -
                    # [ | 
| 539 | 
            +
                    # ["reply_code = nil", "reply_text = EMPTY_STRING", "class_id = nil", "method_id = nil"]
         | 
| 561 540 | 
             
                    def self.encode(reply_code, reply_text, class_id, method_id)
         | 
| 562 541 | 
             
                      channel = 0
         | 
| 563 | 
            -
                      buffer =  | 
| 542 | 
            +
                      buffer = ""
         | 
| 564 543 | 
             
                      buffer << @packed_indexes
         | 
| 565 544 | 
             
                      buffer << [reply_code].pack(PACK_UINT16)
         | 
| 566 | 
            -
                      buffer << reply_text.bytesize.chr
         | 
| 567 | 
            -
                      buffer << reply_text
         | 
| 545 | 
            +
                      buffer << reply_text.to_s.bytesize.chr
         | 
| 546 | 
            +
                      buffer << reply_text.to_s
         | 
| 568 547 | 
             
                      buffer << [class_id].pack(PACK_UINT16)
         | 
| 569 548 | 
             
                      buffer << [method_id].pack(PACK_UINT16)
         | 
| 570 549 | 
             
                      MethodFrame.new(buffer, channel)
         | 
| 571 550 | 
             
                    end
         | 
| 572 | 
            -
             | 
| 573 551 | 
             
                  end
         | 
| 574 552 |  | 
| 575 553 | 
             
                  class CloseOk < Protocol::Method
         | 
| @@ -595,42 +573,36 @@ module AMQ | |
| 595 573 | 
             
                    # []
         | 
| 596 574 | 
             
                    def self.encode()
         | 
| 597 575 | 
             
                      channel = 0
         | 
| 598 | 
            -
                      buffer =  | 
| 576 | 
            +
                      buffer = ""
         | 
| 599 577 | 
             
                      buffer << @packed_indexes
         | 
| 600 578 | 
             
                      MethodFrame.new(buffer, channel)
         | 
| 601 579 | 
             
                    end
         | 
| 602 | 
            -
             | 
| 603 580 | 
             
                  end
         | 
| 604 | 
            -
             | 
| 605 581 | 
             
                end
         | 
| 606 582 |  | 
| 607 583 | 
             
                class Channel < Protocol::Class
         | 
| 608 584 | 
             
                  @name = "channel"
         | 
| 609 585 | 
             
                  @method_id = 20
         | 
| 610 586 |  | 
| 611 | 
            -
             | 
| 612 | 
            -
             | 
| 613 587 | 
             
                  class Open < Protocol::Method
         | 
| 614 588 | 
             
                    @name = "channel.open"
         | 
| 615 589 | 
             
                    @method_id = 10
         | 
| 616 590 | 
             
                    @index = 0x0014000A # 20, 10, 1310730
         | 
| 617 591 | 
             
                    @packed_indexes = [20, 10].pack(PACK_UINT16_X2).freeze
         | 
| 618 592 |  | 
| 619 | 
            -
             | 
| 620 593 | 
             
                    def self.has_content?
         | 
| 621 594 | 
             
                      false
         | 
| 622 595 | 
             
                    end
         | 
| 623 596 |  | 
| 624 597 | 
             
                    # @return
         | 
| 625 | 
            -
                    # [ | 
| 598 | 
            +
                    # ["out_of_band = EMPTY_STRING"]
         | 
| 626 599 | 
             
                    def self.encode(channel, out_of_band)
         | 
| 627 | 
            -
                      buffer =  | 
| 600 | 
            +
                      buffer = ""
         | 
| 628 601 | 
             
                      buffer << @packed_indexes
         | 
| 629 | 
            -
                      buffer << out_of_band.bytesize.chr
         | 
| 630 | 
            -
                      buffer << out_of_band
         | 
| 602 | 
            +
                      buffer << out_of_band.to_s.bytesize.chr
         | 
| 603 | 
            +
                      buffer << out_of_band.to_s
         | 
| 631 604 | 
             
                      MethodFrame.new(buffer, channel)
         | 
| 632 605 | 
             
                    end
         | 
| 633 | 
            -
             | 
| 634 606 | 
             
                  end
         | 
| 635 607 |  | 
| 636 608 | 
             
                  class OpenOk < Protocol::Method
         | 
| @@ -657,8 +629,6 @@ module AMQ | |
| 657 629 | 
             
                    def self.has_content?
         | 
| 658 630 | 
             
                      false
         | 
| 659 631 | 
             
                    end
         | 
| 660 | 
            -
             | 
| 661 | 
            -
             | 
| 662 632 | 
             
                  end
         | 
| 663 633 |  | 
| 664 634 | 
             
                  class Flow < Protocol::Method
         | 
| @@ -686,16 +656,15 @@ module AMQ | |
| 686 656 | 
             
                    end
         | 
| 687 657 |  | 
| 688 658 | 
             
                    # @return
         | 
| 689 | 
            -
                    # [ | 
| 659 | 
            +
                    # ["active = nil"]
         | 
| 690 660 | 
             
                    def self.encode(channel, active)
         | 
| 691 | 
            -
                      buffer =  | 
| 661 | 
            +
                      buffer = ""
         | 
| 692 662 | 
             
                      buffer << @packed_indexes
         | 
| 693 663 | 
             
                      bit_buffer = 0
         | 
| 694 664 | 
             
                      bit_buffer = bit_buffer | (1 << 0) if active
         | 
| 695 665 | 
             
                      buffer << [bit_buffer].pack(PACK_CHAR)
         | 
| 696 666 | 
             
                      MethodFrame.new(buffer, channel)
         | 
| 697 667 | 
             
                    end
         | 
| 698 | 
            -
             | 
| 699 668 | 
             
                  end
         | 
| 700 669 |  | 
| 701 670 | 
             
                  class FlowOk < Protocol::Method
         | 
| @@ -723,16 +692,15 @@ module AMQ | |
| 723 692 | 
             
                    end
         | 
| 724 693 |  | 
| 725 694 | 
             
                    # @return
         | 
| 726 | 
            -
                    # [ | 
| 695 | 
            +
                    # ["active = nil"]
         | 
| 727 696 | 
             
                    def self.encode(channel, active)
         | 
| 728 | 
            -
                      buffer =  | 
| 697 | 
            +
                      buffer = ""
         | 
| 729 698 | 
             
                      buffer << @packed_indexes
         | 
| 730 699 | 
             
                      bit_buffer = 0
         | 
| 731 700 | 
             
                      bit_buffer = bit_buffer | (1 << 0) if active
         | 
| 732 701 | 
             
                      buffer << [bit_buffer].pack(PACK_CHAR)
         | 
| 733 702 | 
             
                      MethodFrame.new(buffer, channel)
         | 
| 734 703 | 
             
                    end
         | 
| 735 | 
            -
             | 
| 736 704 | 
             
                  end
         | 
| 737 705 |  | 
| 738 706 | 
             
                  class Close < Protocol::Method
         | 
| @@ -770,18 +738,17 @@ module AMQ | |
| 770 738 | 
             
                    end
         | 
| 771 739 |  | 
| 772 740 | 
             
                    # @return
         | 
| 773 | 
            -
                    # [ | 
| 741 | 
            +
                    # ["reply_code = nil", "reply_text = EMPTY_STRING", "class_id = nil", "method_id = nil"]
         | 
| 774 742 | 
             
                    def self.encode(channel, reply_code, reply_text, class_id, method_id)
         | 
| 775 | 
            -
                      buffer =  | 
| 743 | 
            +
                      buffer = ""
         | 
| 776 744 | 
             
                      buffer << @packed_indexes
         | 
| 777 745 | 
             
                      buffer << [reply_code].pack(PACK_UINT16)
         | 
| 778 | 
            -
                      buffer << reply_text.bytesize.chr
         | 
| 779 | 
            -
                      buffer << reply_text
         | 
| 746 | 
            +
                      buffer << reply_text.to_s.bytesize.chr
         | 
| 747 | 
            +
                      buffer << reply_text.to_s
         | 
| 780 748 | 
             
                      buffer << [class_id].pack(PACK_UINT16)
         | 
| 781 749 | 
             
                      buffer << [method_id].pack(PACK_UINT16)
         | 
| 782 750 | 
             
                      MethodFrame.new(buffer, channel)
         | 
| 783 751 | 
             
                    end
         | 
| 784 | 
            -
             | 
| 785 752 | 
             
                  end
         | 
| 786 753 |  | 
| 787 754 | 
             
                  class CloseOk < Protocol::Method
         | 
| @@ -806,43 +773,38 @@ module AMQ | |
| 806 773 | 
             
                    # @return
         | 
| 807 774 | 
             
                    # []
         | 
| 808 775 | 
             
                    def self.encode(channel)
         | 
| 809 | 
            -
                      buffer =  | 
| 776 | 
            +
                      buffer = ""
         | 
| 810 777 | 
             
                      buffer << @packed_indexes
         | 
| 811 778 | 
             
                      MethodFrame.new(buffer, channel)
         | 
| 812 779 | 
             
                    end
         | 
| 813 | 
            -
             | 
| 814 780 | 
             
                  end
         | 
| 815 | 
            -
             | 
| 816 781 | 
             
                end
         | 
| 817 782 |  | 
| 818 783 | 
             
                class Exchange < Protocol::Class
         | 
| 819 784 | 
             
                  @name = "exchange"
         | 
| 820 785 | 
             
                  @method_id = 40
         | 
| 821 786 |  | 
| 822 | 
            -
             | 
| 823 | 
            -
             | 
| 824 787 | 
             
                  class Declare < Protocol::Method
         | 
| 825 788 | 
             
                    @name = "exchange.declare"
         | 
| 826 789 | 
             
                    @method_id = 10
         | 
| 827 790 | 
             
                    @index = 0x0028000A # 40, 10, 2621450
         | 
| 828 791 | 
             
                    @packed_indexes = [40, 10].pack(PACK_UINT16_X2).freeze
         | 
| 829 792 |  | 
| 830 | 
            -
             | 
| 831 793 | 
             
                    def self.has_content?
         | 
| 832 794 | 
             
                      false
         | 
| 833 795 | 
             
                    end
         | 
| 834 796 |  | 
| 835 797 | 
             
                    # @return
         | 
| 836 | 
            -
                    # [ | 
| 798 | 
            +
                    # ["ticket = 0", "exchange = nil", "type = "direct"", "passive = false", "durable = false", "auto_delete = false", "internal = false", "nowait = false", "arguments = {}"]
         | 
| 837 799 | 
             
                    def self.encode(channel, exchange, type, passive, durable, auto_delete, internal, nowait, arguments)
         | 
| 838 800 | 
             
                      ticket = 0
         | 
| 839 | 
            -
                      buffer =  | 
| 801 | 
            +
                      buffer = ""
         | 
| 840 802 | 
             
                      buffer << @packed_indexes
         | 
| 841 803 | 
             
                      buffer << [ticket].pack(PACK_UINT16)
         | 
| 842 | 
            -
                      buffer << exchange.bytesize.chr
         | 
| 843 | 
            -
                      buffer << exchange
         | 
| 844 | 
            -
                      buffer << type.bytesize.chr
         | 
| 845 | 
            -
                      buffer << type
         | 
| 804 | 
            +
                      buffer << exchange.to_s.bytesize.chr
         | 
| 805 | 
            +
                      buffer << exchange.to_s
         | 
| 806 | 
            +
                      buffer << type.to_s.bytesize.chr
         | 
| 807 | 
            +
                      buffer << type.to_s
         | 
| 846 808 | 
             
                      bit_buffer = 0
         | 
| 847 809 | 
             
                      bit_buffer = bit_buffer | (1 << 0) if passive
         | 
| 848 810 | 
             
                      bit_buffer = bit_buffer | (1 << 1) if durable
         | 
| @@ -853,7 +815,6 @@ module AMQ | |
| 853 815 | 
             
                      buffer << AMQ::Protocol::Table.encode(arguments)
         | 
| 854 816 | 
             
                      MethodFrame.new(buffer, channel)
         | 
| 855 817 | 
             
                    end
         | 
| 856 | 
            -
             | 
| 857 818 | 
             
                  end
         | 
| 858 819 |  | 
| 859 820 | 
             
                  class DeclareOk < Protocol::Method
         | 
| @@ -874,8 +835,6 @@ module AMQ | |
| 874 835 | 
             
                    def self.has_content?
         | 
| 875 836 | 
             
                      false
         | 
| 876 837 | 
             
                    end
         | 
| 877 | 
            -
             | 
| 878 | 
            -
             | 
| 879 838 | 
             
                  end
         | 
| 880 839 |  | 
| 881 840 | 
             
                  class Delete < Protocol::Method
         | 
| @@ -884,27 +843,25 @@ module AMQ | |
| 884 843 | 
             
                    @index = 0x00280014 # 40, 20, 2621460
         | 
| 885 844 | 
             
                    @packed_indexes = [40, 20].pack(PACK_UINT16_X2).freeze
         | 
| 886 845 |  | 
| 887 | 
            -
             | 
| 888 846 | 
             
                    def self.has_content?
         | 
| 889 847 | 
             
                      false
         | 
| 890 848 | 
             
                    end
         | 
| 891 849 |  | 
| 892 850 | 
             
                    # @return
         | 
| 893 | 
            -
                    # [ | 
| 851 | 
            +
                    # ["ticket = 0", "exchange = nil", "if_unused = false", "nowait = false"]
         | 
| 894 852 | 
             
                    def self.encode(channel, exchange, if_unused, nowait)
         | 
| 895 853 | 
             
                      ticket = 0
         | 
| 896 | 
            -
                      buffer =  | 
| 854 | 
            +
                      buffer = ""
         | 
| 897 855 | 
             
                      buffer << @packed_indexes
         | 
| 898 856 | 
             
                      buffer << [ticket].pack(PACK_UINT16)
         | 
| 899 | 
            -
                      buffer << exchange.bytesize.chr
         | 
| 900 | 
            -
                      buffer << exchange
         | 
| 857 | 
            +
                      buffer << exchange.to_s.bytesize.chr
         | 
| 858 | 
            +
                      buffer << exchange.to_s
         | 
| 901 859 | 
             
                      bit_buffer = 0
         | 
| 902 860 | 
             
                      bit_buffer = bit_buffer | (1 << 0) if if_unused
         | 
| 903 861 | 
             
                      bit_buffer = bit_buffer | (1 << 1) if nowait
         | 
| 904 862 | 
             
                      buffer << [bit_buffer].pack(PACK_CHAR)
         | 
| 905 863 | 
             
                      MethodFrame.new(buffer, channel)
         | 
| 906 864 | 
             
                    end
         | 
| 907 | 
            -
             | 
| 908 865 | 
             
                  end
         | 
| 909 866 |  | 
| 910 867 | 
             
                  class DeleteOk < Protocol::Method
         | 
| @@ -925,8 +882,6 @@ module AMQ | |
| 925 882 | 
             
                    def self.has_content?
         | 
| 926 883 | 
             
                      false
         | 
| 927 884 | 
             
                    end
         | 
| 928 | 
            -
             | 
| 929 | 
            -
             | 
| 930 885 | 
             
                  end
         | 
| 931 886 |  | 
| 932 887 | 
             
                  class Bind < Protocol::Method
         | 
| @@ -935,31 +890,29 @@ module AMQ | |
| 935 890 | 
             
                    @index = 0x0028001E # 40, 30, 2621470
         | 
| 936 891 | 
             
                    @packed_indexes = [40, 30].pack(PACK_UINT16_X2).freeze
         | 
| 937 892 |  | 
| 938 | 
            -
             | 
| 939 893 | 
             
                    def self.has_content?
         | 
| 940 894 | 
             
                      false
         | 
| 941 895 | 
             
                    end
         | 
| 942 896 |  | 
| 943 897 | 
             
                    # @return
         | 
| 944 | 
            -
                    # [ | 
| 898 | 
            +
                    # ["ticket = 0", "destination = nil", "source = nil", "routing_key = EMPTY_STRING", "nowait = false", "arguments = {}"]
         | 
| 945 899 | 
             
                    def self.encode(channel, destination, source, routing_key, nowait, arguments)
         | 
| 946 900 | 
             
                      ticket = 0
         | 
| 947 | 
            -
                      buffer =  | 
| 901 | 
            +
                      buffer = ""
         | 
| 948 902 | 
             
                      buffer << @packed_indexes
         | 
| 949 903 | 
             
                      buffer << [ticket].pack(PACK_UINT16)
         | 
| 950 | 
            -
                      buffer << destination.bytesize.chr
         | 
| 951 | 
            -
                      buffer << destination
         | 
| 952 | 
            -
                      buffer << source.bytesize.chr
         | 
| 953 | 
            -
                      buffer << source
         | 
| 954 | 
            -
                      buffer << routing_key.bytesize.chr
         | 
| 955 | 
            -
                      buffer << routing_key
         | 
| 904 | 
            +
                      buffer << destination.to_s.bytesize.chr
         | 
| 905 | 
            +
                      buffer << destination.to_s
         | 
| 906 | 
            +
                      buffer << source.to_s.bytesize.chr
         | 
| 907 | 
            +
                      buffer << source.to_s
         | 
| 908 | 
            +
                      buffer << routing_key.to_s.bytesize.chr
         | 
| 909 | 
            +
                      buffer << routing_key.to_s
         | 
| 956 910 | 
             
                      bit_buffer = 0
         | 
| 957 911 | 
             
                      bit_buffer = bit_buffer | (1 << 0) if nowait
         | 
| 958 912 | 
             
                      buffer << [bit_buffer].pack(PACK_CHAR)
         | 
| 959 913 | 
             
                      buffer << AMQ::Protocol::Table.encode(arguments)
         | 
| 960 914 | 
             
                      MethodFrame.new(buffer, channel)
         | 
| 961 915 | 
             
                    end
         | 
| 962 | 
            -
             | 
| 963 916 | 
             
                  end
         | 
| 964 917 |  | 
| 965 918 | 
             
                  class BindOk < Protocol::Method
         | 
| @@ -980,8 +933,6 @@ module AMQ | |
| 980 933 | 
             
                    def self.has_content?
         | 
| 981 934 | 
             
                      false
         | 
| 982 935 | 
             
                    end
         | 
| 983 | 
            -
             | 
| 984 | 
            -
             | 
| 985 936 | 
             
                  end
         | 
| 986 937 |  | 
| 987 938 | 
             
                  class Unbind < Protocol::Method
         | 
| @@ -990,31 +941,29 @@ module AMQ | |
| 990 941 | 
             
                    @index = 0x00280028 # 40, 40, 2621480
         | 
| 991 942 | 
             
                    @packed_indexes = [40, 40].pack(PACK_UINT16_X2).freeze
         | 
| 992 943 |  | 
| 993 | 
            -
             | 
| 994 944 | 
             
                    def self.has_content?
         | 
| 995 945 | 
             
                      false
         | 
| 996 946 | 
             
                    end
         | 
| 997 947 |  | 
| 998 948 | 
             
                    # @return
         | 
| 999 | 
            -
                    # [ | 
| 949 | 
            +
                    # ["ticket = 0", "destination = nil", "source = nil", "routing_key = EMPTY_STRING", "nowait = false", "arguments = {}"]
         | 
| 1000 950 | 
             
                    def self.encode(channel, destination, source, routing_key, nowait, arguments)
         | 
| 1001 951 | 
             
                      ticket = 0
         | 
| 1002 | 
            -
                      buffer =  | 
| 952 | 
            +
                      buffer = ""
         | 
| 1003 953 | 
             
                      buffer << @packed_indexes
         | 
| 1004 954 | 
             
                      buffer << [ticket].pack(PACK_UINT16)
         | 
| 1005 | 
            -
                      buffer << destination.bytesize.chr
         | 
| 1006 | 
            -
                      buffer << destination
         | 
| 1007 | 
            -
                      buffer << source.bytesize.chr
         | 
| 1008 | 
            -
                      buffer << source
         | 
| 1009 | 
            -
                      buffer << routing_key.bytesize.chr
         | 
| 1010 | 
            -
                      buffer << routing_key
         | 
| 955 | 
            +
                      buffer << destination.to_s.bytesize.chr
         | 
| 956 | 
            +
                      buffer << destination.to_s
         | 
| 957 | 
            +
                      buffer << source.to_s.bytesize.chr
         | 
| 958 | 
            +
                      buffer << source.to_s
         | 
| 959 | 
            +
                      buffer << routing_key.to_s.bytesize.chr
         | 
| 960 | 
            +
                      buffer << routing_key.to_s
         | 
| 1011 961 | 
             
                      bit_buffer = 0
         | 
| 1012 962 | 
             
                      bit_buffer = bit_buffer | (1 << 0) if nowait
         | 
| 1013 963 | 
             
                      buffer << [bit_buffer].pack(PACK_CHAR)
         | 
| 1014 964 | 
             
                      buffer << AMQ::Protocol::Table.encode(arguments)
         | 
| 1015 965 | 
             
                      MethodFrame.new(buffer, channel)
         | 
| 1016 966 | 
             
                    end
         | 
| 1017 | 
            -
             | 
| 1018 967 | 
             
                  end
         | 
| 1019 968 |  | 
| 1020 969 | 
             
                  class UnbindOk < Protocol::Method
         | 
| @@ -1035,38 +984,32 @@ module AMQ | |
| 1035 984 | 
             
                    def self.has_content?
         | 
| 1036 985 | 
             
                      false
         | 
| 1037 986 | 
             
                    end
         | 
| 1038 | 
            -
             | 
| 1039 | 
            -
             | 
| 1040 987 | 
             
                  end
         | 
| 1041 | 
            -
             | 
| 1042 988 | 
             
                end
         | 
| 1043 989 |  | 
| 1044 990 | 
             
                class Queue < Protocol::Class
         | 
| 1045 991 | 
             
                  @name = "queue"
         | 
| 1046 992 | 
             
                  @method_id = 50
         | 
| 1047 993 |  | 
| 1048 | 
            -
             | 
| 1049 | 
            -
             | 
| 1050 994 | 
             
                  class Declare < Protocol::Method
         | 
| 1051 995 | 
             
                    @name = "queue.declare"
         | 
| 1052 996 | 
             
                    @method_id = 10
         | 
| 1053 997 | 
             
                    @index = 0x0032000A # 50, 10, 3276810
         | 
| 1054 998 | 
             
                    @packed_indexes = [50, 10].pack(PACK_UINT16_X2).freeze
         | 
| 1055 999 |  | 
| 1056 | 
            -
             | 
| 1057 1000 | 
             
                    def self.has_content?
         | 
| 1058 1001 | 
             
                      false
         | 
| 1059 1002 | 
             
                    end
         | 
| 1060 1003 |  | 
| 1061 1004 | 
             
                    # @return
         | 
| 1062 | 
            -
                    # [ | 
| 1005 | 
            +
                    # ["ticket = 0", "queue = EMPTY_STRING", "passive = false", "durable = false", "exclusive = false", "auto_delete = false", "nowait = false", "arguments = {}"]
         | 
| 1063 1006 | 
             
                    def self.encode(channel, queue, passive, durable, exclusive, auto_delete, nowait, arguments)
         | 
| 1064 1007 | 
             
                      ticket = 0
         | 
| 1065 | 
            -
                      buffer =  | 
| 1008 | 
            +
                      buffer = ""
         | 
| 1066 1009 | 
             
                      buffer << @packed_indexes
         | 
| 1067 1010 | 
             
                      buffer << [ticket].pack(PACK_UINT16)
         | 
| 1068 | 
            -
                      buffer << queue.bytesize.chr
         | 
| 1069 | 
            -
                      buffer << queue
         | 
| 1011 | 
            +
                      buffer << queue.to_s.bytesize.chr
         | 
| 1012 | 
            +
                      buffer << queue.to_s
         | 
| 1070 1013 | 
             
                      bit_buffer = 0
         | 
| 1071 1014 | 
             
                      bit_buffer = bit_buffer | (1 << 0) if passive
         | 
| 1072 1015 | 
             
                      bit_buffer = bit_buffer | (1 << 1) if durable
         | 
| @@ -1077,7 +1020,6 @@ module AMQ | |
| 1077 1020 | 
             
                      buffer << AMQ::Protocol::Table.encode(arguments)
         | 
| 1078 1021 | 
             
                      MethodFrame.new(buffer, channel)
         | 
| 1079 1022 | 
             
                    end
         | 
| 1080 | 
            -
             | 
| 1081 1023 | 
             
                  end
         | 
| 1082 1024 |  | 
| 1083 1025 | 
             
                  class DeclareOk < Protocol::Method
         | 
| @@ -1110,8 +1052,6 @@ module AMQ | |
| 1110 1052 | 
             
                    def self.has_content?
         | 
| 1111 1053 | 
             
                      false
         | 
| 1112 1054 | 
             
                    end
         | 
| 1113 | 
            -
             | 
| 1114 | 
            -
             | 
| 1115 1055 | 
             
                  end
         | 
| 1116 1056 |  | 
| 1117 1057 | 
             
                  class Bind < Protocol::Method
         | 
| @@ -1120,31 +1060,29 @@ module AMQ | |
| 1120 1060 | 
             
                    @index = 0x00320014 # 50, 20, 3276820
         | 
| 1121 1061 | 
             
                    @packed_indexes = [50, 20].pack(PACK_UINT16_X2).freeze
         | 
| 1122 1062 |  | 
| 1123 | 
            -
             | 
| 1124 1063 | 
             
                    def self.has_content?
         | 
| 1125 1064 | 
             
                      false
         | 
| 1126 1065 | 
             
                    end
         | 
| 1127 1066 |  | 
| 1128 1067 | 
             
                    # @return
         | 
| 1129 | 
            -
                    # [ | 
| 1068 | 
            +
                    # ["ticket = 0", "queue = EMPTY_STRING", "exchange = nil", "routing_key = EMPTY_STRING", "nowait = false", "arguments = {}"]
         | 
| 1130 1069 | 
             
                    def self.encode(channel, queue, exchange, routing_key, nowait, arguments)
         | 
| 1131 1070 | 
             
                      ticket = 0
         | 
| 1132 | 
            -
                      buffer =  | 
| 1071 | 
            +
                      buffer = ""
         | 
| 1133 1072 | 
             
                      buffer << @packed_indexes
         | 
| 1134 1073 | 
             
                      buffer << [ticket].pack(PACK_UINT16)
         | 
| 1135 | 
            -
                      buffer << queue.bytesize.chr
         | 
| 1136 | 
            -
                      buffer << queue
         | 
| 1137 | 
            -
                      buffer << exchange.bytesize.chr
         | 
| 1138 | 
            -
                      buffer << exchange
         | 
| 1139 | 
            -
                      buffer << routing_key.bytesize.chr
         | 
| 1140 | 
            -
                      buffer << routing_key
         | 
| 1074 | 
            +
                      buffer << queue.to_s.bytesize.chr
         | 
| 1075 | 
            +
                      buffer << queue.to_s
         | 
| 1076 | 
            +
                      buffer << exchange.to_s.bytesize.chr
         | 
| 1077 | 
            +
                      buffer << exchange.to_s
         | 
| 1078 | 
            +
                      buffer << routing_key.to_s.bytesize.chr
         | 
| 1079 | 
            +
                      buffer << routing_key.to_s
         | 
| 1141 1080 | 
             
                      bit_buffer = 0
         | 
| 1142 1081 | 
             
                      bit_buffer = bit_buffer | (1 << 0) if nowait
         | 
| 1143 1082 | 
             
                      buffer << [bit_buffer].pack(PACK_CHAR)
         | 
| 1144 1083 | 
             
                      buffer << AMQ::Protocol::Table.encode(arguments)
         | 
| 1145 1084 | 
             
                      MethodFrame.new(buffer, channel)
         | 
| 1146 1085 | 
             
                    end
         | 
| 1147 | 
            -
             | 
| 1148 1086 | 
             
                  end
         | 
| 1149 1087 |  | 
| 1150 1088 | 
             
                  class BindOk < Protocol::Method
         | 
| @@ -1165,8 +1103,6 @@ module AMQ | |
| 1165 1103 | 
             
                    def self.has_content?
         | 
| 1166 1104 | 
             
                      false
         | 
| 1167 1105 | 
             
                    end
         | 
| 1168 | 
            -
             | 
| 1169 | 
            -
             | 
| 1170 1106 | 
             
                  end
         | 
| 1171 1107 |  | 
| 1172 1108 | 
             
                  class Purge < Protocol::Method
         | 
| @@ -1175,26 +1111,24 @@ module AMQ | |
| 1175 1111 | 
             
                    @index = 0x0032001E # 50, 30, 3276830
         | 
| 1176 1112 | 
             
                    @packed_indexes = [50, 30].pack(PACK_UINT16_X2).freeze
         | 
| 1177 1113 |  | 
| 1178 | 
            -
             | 
| 1179 1114 | 
             
                    def self.has_content?
         | 
| 1180 1115 | 
             
                      false
         | 
| 1181 1116 | 
             
                    end
         | 
| 1182 1117 |  | 
| 1183 1118 | 
             
                    # @return
         | 
| 1184 | 
            -
                    # [ | 
| 1119 | 
            +
                    # ["ticket = 0", "queue = EMPTY_STRING", "nowait = false"]
         | 
| 1185 1120 | 
             
                    def self.encode(channel, queue, nowait)
         | 
| 1186 1121 | 
             
                      ticket = 0
         | 
| 1187 | 
            -
                      buffer =  | 
| 1122 | 
            +
                      buffer = ""
         | 
| 1188 1123 | 
             
                      buffer << @packed_indexes
         | 
| 1189 1124 | 
             
                      buffer << [ticket].pack(PACK_UINT16)
         | 
| 1190 | 
            -
                      buffer << queue.bytesize.chr
         | 
| 1191 | 
            -
                      buffer << queue
         | 
| 1125 | 
            +
                      buffer << queue.to_s.bytesize.chr
         | 
| 1126 | 
            +
                      buffer << queue.to_s
         | 
| 1192 1127 | 
             
                      bit_buffer = 0
         | 
| 1193 1128 | 
             
                      bit_buffer = bit_buffer | (1 << 0) if nowait
         | 
| 1194 1129 | 
             
                      buffer << [bit_buffer].pack(PACK_CHAR)
         | 
| 1195 1130 | 
             
                      MethodFrame.new(buffer, channel)
         | 
| 1196 1131 | 
             
                    end
         | 
| 1197 | 
            -
             | 
| 1198 1132 | 
             
                  end
         | 
| 1199 1133 |  | 
| 1200 1134 | 
             
                  class PurgeOk < Protocol::Method
         | 
| @@ -1219,8 +1153,6 @@ module AMQ | |
| 1219 1153 | 
             
                    def self.has_content?
         | 
| 1220 1154 | 
             
                      false
         | 
| 1221 1155 | 
             
                    end
         | 
| 1222 | 
            -
             | 
| 1223 | 
            -
             | 
| 1224 1156 | 
             
                  end
         | 
| 1225 1157 |  | 
| 1226 1158 | 
             
                  class Delete < Protocol::Method
         | 
| @@ -1229,20 +1161,19 @@ module AMQ | |
| 1229 1161 | 
             
                    @index = 0x00320028 # 50, 40, 3276840
         | 
| 1230 1162 | 
             
                    @packed_indexes = [50, 40].pack(PACK_UINT16_X2).freeze
         | 
| 1231 1163 |  | 
| 1232 | 
            -
             | 
| 1233 1164 | 
             
                    def self.has_content?
         | 
| 1234 1165 | 
             
                      false
         | 
| 1235 1166 | 
             
                    end
         | 
| 1236 1167 |  | 
| 1237 1168 | 
             
                    # @return
         | 
| 1238 | 
            -
                    # [ | 
| 1169 | 
            +
                    # ["ticket = 0", "queue = EMPTY_STRING", "if_unused = false", "if_empty = false", "nowait = false"]
         | 
| 1239 1170 | 
             
                    def self.encode(channel, queue, if_unused, if_empty, nowait)
         | 
| 1240 1171 | 
             
                      ticket = 0
         | 
| 1241 | 
            -
                      buffer =  | 
| 1172 | 
            +
                      buffer = ""
         | 
| 1242 1173 | 
             
                      buffer << @packed_indexes
         | 
| 1243 1174 | 
             
                      buffer << [ticket].pack(PACK_UINT16)
         | 
| 1244 | 
            -
                      buffer << queue.bytesize.chr
         | 
| 1245 | 
            -
                      buffer << queue
         | 
| 1175 | 
            +
                      buffer << queue.to_s.bytesize.chr
         | 
| 1176 | 
            +
                      buffer << queue.to_s
         | 
| 1246 1177 | 
             
                      bit_buffer = 0
         | 
| 1247 1178 | 
             
                      bit_buffer = bit_buffer | (1 << 0) if if_unused
         | 
| 1248 1179 | 
             
                      bit_buffer = bit_buffer | (1 << 1) if if_empty
         | 
| @@ -1250,7 +1181,6 @@ module AMQ | |
| 1250 1181 | 
             
                      buffer << [bit_buffer].pack(PACK_CHAR)
         | 
| 1251 1182 | 
             
                      MethodFrame.new(buffer, channel)
         | 
| 1252 1183 | 
             
                    end
         | 
| 1253 | 
            -
             | 
| 1254 1184 | 
             
                  end
         | 
| 1255 1185 |  | 
| 1256 1186 | 
             
                  class DeleteOk < Protocol::Method
         | 
| @@ -1275,8 +1205,6 @@ module AMQ | |
| 1275 1205 | 
             
                    def self.has_content?
         | 
| 1276 1206 | 
             
                      false
         | 
| 1277 1207 | 
             
                    end
         | 
| 1278 | 
            -
             | 
| 1279 | 
            -
             | 
| 1280 1208 | 
             
                  end
         | 
| 1281 1209 |  | 
| 1282 1210 | 
             
                  class Unbind < Protocol::Method
         | 
| @@ -1285,28 +1213,26 @@ module AMQ | |
| 1285 1213 | 
             
                    @index = 0x00320032 # 50, 50, 3276850
         | 
| 1286 1214 | 
             
                    @packed_indexes = [50, 50].pack(PACK_UINT16_X2).freeze
         | 
| 1287 1215 |  | 
| 1288 | 
            -
             | 
| 1289 1216 | 
             
                    def self.has_content?
         | 
| 1290 1217 | 
             
                      false
         | 
| 1291 1218 | 
             
                    end
         | 
| 1292 1219 |  | 
| 1293 1220 | 
             
                    # @return
         | 
| 1294 | 
            -
                    # [ | 
| 1221 | 
            +
                    # ["ticket = 0", "queue = EMPTY_STRING", "exchange = nil", "routing_key = EMPTY_STRING", "arguments = {}"]
         | 
| 1295 1222 | 
             
                    def self.encode(channel, queue, exchange, routing_key, arguments)
         | 
| 1296 1223 | 
             
                      ticket = 0
         | 
| 1297 | 
            -
                      buffer =  | 
| 1224 | 
            +
                      buffer = ""
         | 
| 1298 1225 | 
             
                      buffer << @packed_indexes
         | 
| 1299 1226 | 
             
                      buffer << [ticket].pack(PACK_UINT16)
         | 
| 1300 | 
            -
                      buffer << queue.bytesize.chr
         | 
| 1301 | 
            -
                      buffer << queue
         | 
| 1302 | 
            -
                      buffer << exchange.bytesize.chr
         | 
| 1303 | 
            -
                      buffer << exchange
         | 
| 1304 | 
            -
                      buffer << routing_key.bytesize.chr
         | 
| 1305 | 
            -
                      buffer << routing_key
         | 
| 1227 | 
            +
                      buffer << queue.to_s.bytesize.chr
         | 
| 1228 | 
            +
                      buffer << queue.to_s
         | 
| 1229 | 
            +
                      buffer << exchange.to_s.bytesize.chr
         | 
| 1230 | 
            +
                      buffer << exchange.to_s
         | 
| 1231 | 
            +
                      buffer << routing_key.to_s.bytesize.chr
         | 
| 1232 | 
            +
                      buffer << routing_key.to_s
         | 
| 1306 1233 | 
             
                      buffer << AMQ::Protocol::Table.encode(arguments)
         | 
| 1307 1234 | 
             
                      MethodFrame.new(buffer, channel)
         | 
| 1308 1235 | 
             
                    end
         | 
| 1309 | 
            -
             | 
| 1310 1236 | 
             
                  end
         | 
| 1311 1237 |  | 
| 1312 1238 | 
             
                  class UnbindOk < Protocol::Method
         | 
| @@ -1327,10 +1253,7 @@ module AMQ | |
| 1327 1253 | 
             
                    def self.has_content?
         | 
| 1328 1254 | 
             
                      false
         | 
| 1329 1255 | 
             
                    end
         | 
| 1330 | 
            -
             | 
| 1331 | 
            -
             | 
| 1332 1256 | 
             
                  end
         | 
| 1333 | 
            -
             | 
| 1334 1257 | 
             
                end
         | 
| 1335 1258 |  | 
| 1336 1259 | 
             
                class Basic < Protocol::Class
         | 
| @@ -1356,114 +1279,112 @@ module AMQ | |
| 1356 1279 |  | 
| 1357 1280 | 
             
                  # 1 << 15
         | 
| 1358 1281 | 
             
                  def self.encode_content_type(value)
         | 
| 1359 | 
            -
                    buffer =  | 
| 1360 | 
            -
                    buffer << value.bytesize.chr
         | 
| 1361 | 
            -
                    buffer << value
         | 
| 1282 | 
            +
                    buffer = ""
         | 
| 1283 | 
            +
                    buffer << value.to_s.bytesize.chr
         | 
| 1284 | 
            +
                    buffer << value.to_s
         | 
| 1362 1285 | 
             
                    [0, 0x8000, buffer]
         | 
| 1363 1286 | 
             
                  end
         | 
| 1364 1287 |  | 
| 1365 1288 | 
             
                  # 1 << 14
         | 
| 1366 1289 | 
             
                  def self.encode_content_encoding(value)
         | 
| 1367 | 
            -
                    buffer =  | 
| 1368 | 
            -
                    buffer << value.bytesize.chr
         | 
| 1369 | 
            -
                    buffer << value
         | 
| 1290 | 
            +
                    buffer = ""
         | 
| 1291 | 
            +
                    buffer << value.to_s.bytesize.chr
         | 
| 1292 | 
            +
                    buffer << value.to_s
         | 
| 1370 1293 | 
             
                    [1, 0x4000, buffer]
         | 
| 1371 1294 | 
             
                  end
         | 
| 1372 1295 |  | 
| 1373 1296 | 
             
                  # 1 << 13
         | 
| 1374 1297 | 
             
                  def self.encode_headers(value)
         | 
| 1375 | 
            -
                    buffer =  | 
| 1298 | 
            +
                    buffer = ""
         | 
| 1376 1299 | 
             
                    buffer << AMQ::Protocol::Table.encode(value)
         | 
| 1377 1300 | 
             
                    [2, 0x2000, buffer]
         | 
| 1378 1301 | 
             
                  end
         | 
| 1379 1302 |  | 
| 1380 1303 | 
             
                  # 1 << 12
         | 
| 1381 1304 | 
             
                  def self.encode_delivery_mode(value)
         | 
| 1382 | 
            -
                    buffer =  | 
| 1305 | 
            +
                    buffer = ""
         | 
| 1383 1306 | 
             
                    buffer << [value].pack(PACK_CHAR)
         | 
| 1384 1307 | 
             
                    [3, 0x1000, buffer]
         | 
| 1385 1308 | 
             
                  end
         | 
| 1386 1309 |  | 
| 1387 1310 | 
             
                  # 1 << 11
         | 
| 1388 1311 | 
             
                  def self.encode_priority(value)
         | 
| 1389 | 
            -
                    buffer =  | 
| 1312 | 
            +
                    buffer = ""
         | 
| 1390 1313 | 
             
                    buffer << [value].pack(PACK_CHAR)
         | 
| 1391 1314 | 
             
                    [4, 0x0800, buffer]
         | 
| 1392 1315 | 
             
                  end
         | 
| 1393 1316 |  | 
| 1394 1317 | 
             
                  # 1 << 10
         | 
| 1395 1318 | 
             
                  def self.encode_correlation_id(value)
         | 
| 1396 | 
            -
                    buffer =  | 
| 1397 | 
            -
                    buffer << value.bytesize.chr
         | 
| 1398 | 
            -
                    buffer << value
         | 
| 1319 | 
            +
                    buffer = ""
         | 
| 1320 | 
            +
                    buffer << value.to_s.bytesize.chr
         | 
| 1321 | 
            +
                    buffer << value.to_s
         | 
| 1399 1322 | 
             
                    [5, 0x0400, buffer]
         | 
| 1400 1323 | 
             
                  end
         | 
| 1401 1324 |  | 
| 1402 1325 | 
             
                  # 1 << 9
         | 
| 1403 1326 | 
             
                  def self.encode_reply_to(value)
         | 
| 1404 | 
            -
                    buffer =  | 
| 1405 | 
            -
                    buffer << value.bytesize.chr
         | 
| 1406 | 
            -
                    buffer << value
         | 
| 1327 | 
            +
                    buffer = ""
         | 
| 1328 | 
            +
                    buffer << value.to_s.bytesize.chr
         | 
| 1329 | 
            +
                    buffer << value.to_s
         | 
| 1407 1330 | 
             
                    [6, 0x0200, buffer]
         | 
| 1408 1331 | 
             
                  end
         | 
| 1409 1332 |  | 
| 1410 1333 | 
             
                  # 1 << 8
         | 
| 1411 1334 | 
             
                  def self.encode_expiration(value)
         | 
| 1412 | 
            -
                    buffer =  | 
| 1413 | 
            -
                    buffer << value.bytesize.chr
         | 
| 1414 | 
            -
                    buffer << value
         | 
| 1335 | 
            +
                    buffer = ""
         | 
| 1336 | 
            +
                    buffer << value.to_s.bytesize.chr
         | 
| 1337 | 
            +
                    buffer << value.to_s
         | 
| 1415 1338 | 
             
                    [7, 0x0100, buffer]
         | 
| 1416 1339 | 
             
                  end
         | 
| 1417 1340 |  | 
| 1418 1341 | 
             
                  # 1 << 7
         | 
| 1419 1342 | 
             
                  def self.encode_message_id(value)
         | 
| 1420 | 
            -
                    buffer =  | 
| 1421 | 
            -
                    buffer << value.bytesize.chr
         | 
| 1422 | 
            -
                    buffer << value
         | 
| 1343 | 
            +
                    buffer = ""
         | 
| 1344 | 
            +
                    buffer << value.to_s.bytesize.chr
         | 
| 1345 | 
            +
                    buffer << value.to_s
         | 
| 1423 1346 | 
             
                    [8, 0x0080, buffer]
         | 
| 1424 1347 | 
             
                  end
         | 
| 1425 1348 |  | 
| 1426 1349 | 
             
                  # 1 << 6
         | 
| 1427 1350 | 
             
                  def self.encode_timestamp(value)
         | 
| 1428 | 
            -
                    buffer =  | 
| 1351 | 
            +
                    buffer = ""
         | 
| 1429 1352 | 
             
                    buffer << AMQ::Hacks.pack_64_big_endian(value)
         | 
| 1430 1353 | 
             
                    [9, 0x0040, buffer]
         | 
| 1431 1354 | 
             
                  end
         | 
| 1432 1355 |  | 
| 1433 1356 | 
             
                  # 1 << 5
         | 
| 1434 1357 | 
             
                  def self.encode_type(value)
         | 
| 1435 | 
            -
                    buffer =  | 
| 1436 | 
            -
                    buffer << value.bytesize.chr
         | 
| 1437 | 
            -
                    buffer << value
         | 
| 1358 | 
            +
                    buffer = ""
         | 
| 1359 | 
            +
                    buffer << value.to_s.bytesize.chr
         | 
| 1360 | 
            +
                    buffer << value.to_s
         | 
| 1438 1361 | 
             
                    [10, 0x0020, buffer]
         | 
| 1439 1362 | 
             
                  end
         | 
| 1440 1363 |  | 
| 1441 1364 | 
             
                  # 1 << 4
         | 
| 1442 1365 | 
             
                  def self.encode_user_id(value)
         | 
| 1443 | 
            -
                    buffer =  | 
| 1444 | 
            -
                    buffer << value.bytesize.chr
         | 
| 1445 | 
            -
                    buffer << value
         | 
| 1366 | 
            +
                    buffer = ""
         | 
| 1367 | 
            +
                    buffer << value.to_s.bytesize.chr
         | 
| 1368 | 
            +
                    buffer << value.to_s
         | 
| 1446 1369 | 
             
                    [11, 0x0010, buffer]
         | 
| 1447 1370 | 
             
                  end
         | 
| 1448 1371 |  | 
| 1449 1372 | 
             
                  # 1 << 3
         | 
| 1450 1373 | 
             
                  def self.encode_app_id(value)
         | 
| 1451 | 
            -
                    buffer =  | 
| 1452 | 
            -
                    buffer << value.bytesize.chr
         | 
| 1453 | 
            -
                    buffer << value
         | 
| 1374 | 
            +
                    buffer = ""
         | 
| 1375 | 
            +
                    buffer << value.to_s.bytesize.chr
         | 
| 1376 | 
            +
                    buffer << value.to_s
         | 
| 1454 1377 | 
             
                    [12, 0x0008, buffer]
         | 
| 1455 1378 | 
             
                  end
         | 
| 1456 1379 |  | 
| 1457 1380 | 
             
                  # 1 << 2
         | 
| 1458 1381 | 
             
                  def self.encode_cluster_id(value)
         | 
| 1459 | 
            -
                    buffer =  | 
| 1460 | 
            -
                    buffer << value.bytesize.chr
         | 
| 1461 | 
            -
                    buffer << value
         | 
| 1382 | 
            +
                    buffer = ""
         | 
| 1383 | 
            +
                    buffer << value.to_s.bytesize.chr
         | 
| 1384 | 
            +
                    buffer << value.to_s
         | 
| 1462 1385 | 
             
                    [13, 0x0004, buffer]
         | 
| 1463 1386 | 
             
                  end
         | 
| 1464 1387 |  | 
| 1465 | 
            -
             | 
| 1466 | 
            -
             | 
| 1467 1388 | 
             
                  def self.encode_properties(body_size, properties)
         | 
| 1468 1389 | 
             
                    pieces, flags = [], 0
         | 
| 1469 1390 |  | 
| @@ -1473,7 +1394,7 @@ module AMQ | |
| 1473 1394 | 
             
                      pieces[i] = result
         | 
| 1474 1395 | 
             
                    end
         | 
| 1475 1396 |  | 
| 1476 | 
            -
                    # result = [60, 0, body_size, flags].pack( | 
| 1397 | 
            +
                    # result = [60, 0, body_size, flags].pack("n2Qn")
         | 
| 1477 1398 | 
             
                    result = [60, 0].pack(PACK_UINT16_X2)
         | 
| 1478 1399 | 
             
                    result += AMQ::Hacks.pack_64_big_endian(body_size)
         | 
| 1479 1400 | 
             
                    result += [flags].pack(PACK_UINT16)
         | 
| @@ -1515,7 +1436,7 @@ module AMQ | |
| 1515 1436 | 
             
                    0x0004 => :shortstr,
         | 
| 1516 1437 | 
             
                  }
         | 
| 1517 1438 |  | 
| 1518 | 
            -
                  # Hash doesn | 
| 1439 | 
            +
                  # Hash doesn"t give any guarantees on keys order, we will do it in a
         | 
| 1519 1440 | 
             
                  # straightforward way
         | 
| 1520 1441 | 
             
                  DECODE_PROPERTIES_KEYS = [
         | 
| 1521 1442 | 
             
                    0x8000,
         | 
| @@ -1573,15 +1494,14 @@ module AMQ | |
| 1573 1494 | 
             
                    @index = 0x003C000A # 60, 10, 3932170
         | 
| 1574 1495 | 
             
                    @packed_indexes = [60, 10].pack(PACK_UINT16_X2).freeze
         | 
| 1575 1496 |  | 
| 1576 | 
            -
             | 
| 1577 1497 | 
             
                    def self.has_content?
         | 
| 1578 1498 | 
             
                      false
         | 
| 1579 1499 | 
             
                    end
         | 
| 1580 1500 |  | 
| 1581 1501 | 
             
                    # @return
         | 
| 1582 | 
            -
                    # [ | 
| 1502 | 
            +
                    # ["prefetch_size = false", "prefetch_count = false", "global = false"]
         | 
| 1583 1503 | 
             
                    def self.encode(channel, prefetch_size, prefetch_count, global)
         | 
| 1584 | 
            -
                      buffer =  | 
| 1504 | 
            +
                      buffer = ""
         | 
| 1585 1505 | 
             
                      buffer << @packed_indexes
         | 
| 1586 1506 | 
             
                      buffer << [prefetch_size].pack(PACK_UINT32)
         | 
| 1587 1507 | 
             
                      buffer << [prefetch_count].pack(PACK_UINT16)
         | 
| @@ -1590,7 +1510,6 @@ module AMQ | |
| 1590 1510 | 
             
                      buffer << [bit_buffer].pack(PACK_CHAR)
         | 
| 1591 1511 | 
             
                      MethodFrame.new(buffer, channel)
         | 
| 1592 1512 | 
             
                    end
         | 
| 1593 | 
            -
             | 
| 1594 1513 | 
             
                  end
         | 
| 1595 1514 |  | 
| 1596 1515 | 
             
                  class QosOk < Protocol::Method
         | 
| @@ -1611,8 +1530,6 @@ module AMQ | |
| 1611 1530 | 
             
                    def self.has_content?
         | 
| 1612 1531 | 
             
                      false
         | 
| 1613 1532 | 
             
                    end
         | 
| 1614 | 
            -
             | 
| 1615 | 
            -
             | 
| 1616 1533 | 
             
                  end
         | 
| 1617 1534 |  | 
| 1618 1535 | 
             
                  class Consume < Protocol::Method
         | 
| @@ -1621,22 +1538,21 @@ module AMQ | |
| 1621 1538 | 
             
                    @index = 0x003C0014 # 60, 20, 3932180
         | 
| 1622 1539 | 
             
                    @packed_indexes = [60, 20].pack(PACK_UINT16_X2).freeze
         | 
| 1623 1540 |  | 
| 1624 | 
            -
             | 
| 1625 1541 | 
             
                    def self.has_content?
         | 
| 1626 1542 | 
             
                      false
         | 
| 1627 1543 | 
             
                    end
         | 
| 1628 1544 |  | 
| 1629 1545 | 
             
                    # @return
         | 
| 1630 | 
            -
                    # [ | 
| 1546 | 
            +
                    # ["ticket = 0", "queue = EMPTY_STRING", "consumer_tag = EMPTY_STRING", "no_local = false", "no_ack = false", "exclusive = false", "nowait = false", "arguments = {}"]
         | 
| 1631 1547 | 
             
                    def self.encode(channel, queue, consumer_tag, no_local, no_ack, exclusive, nowait, arguments)
         | 
| 1632 1548 | 
             
                      ticket = 0
         | 
| 1633 | 
            -
                      buffer =  | 
| 1549 | 
            +
                      buffer = ""
         | 
| 1634 1550 | 
             
                      buffer << @packed_indexes
         | 
| 1635 1551 | 
             
                      buffer << [ticket].pack(PACK_UINT16)
         | 
| 1636 | 
            -
                      buffer << queue.bytesize.chr
         | 
| 1637 | 
            -
                      buffer << queue
         | 
| 1638 | 
            -
                      buffer << consumer_tag.bytesize.chr
         | 
| 1639 | 
            -
                      buffer << consumer_tag
         | 
| 1552 | 
            +
                      buffer << queue.to_s.bytesize.chr
         | 
| 1553 | 
            +
                      buffer << queue.to_s
         | 
| 1554 | 
            +
                      buffer << consumer_tag.to_s.bytesize.chr
         | 
| 1555 | 
            +
                      buffer << consumer_tag.to_s
         | 
| 1640 1556 | 
             
                      bit_buffer = 0
         | 
| 1641 1557 | 
             
                      bit_buffer = bit_buffer | (1 << 0) if no_local
         | 
| 1642 1558 | 
             
                      bit_buffer = bit_buffer | (1 << 1) if no_ack
         | 
| @@ -1646,7 +1562,6 @@ module AMQ | |
| 1646 1562 | 
             
                      buffer << AMQ::Protocol::Table.encode(arguments)
         | 
| 1647 1563 | 
             
                      MethodFrame.new(buffer, channel)
         | 
| 1648 1564 | 
             
                    end
         | 
| 1649 | 
            -
             | 
| 1650 1565 | 
             
                  end
         | 
| 1651 1566 |  | 
| 1652 1567 | 
             
                  class ConsumeOk < Protocol::Method
         | 
| @@ -1673,8 +1588,6 @@ module AMQ | |
| 1673 1588 | 
             
                    def self.has_content?
         | 
| 1674 1589 | 
             
                      false
         | 
| 1675 1590 | 
             
                    end
         | 
| 1676 | 
            -
             | 
| 1677 | 
            -
             | 
| 1678 1591 | 
             
                  end
         | 
| 1679 1592 |  | 
| 1680 1593 | 
             
                  class Cancel < Protocol::Method
         | 
| @@ -1707,18 +1620,17 @@ module AMQ | |
| 1707 1620 | 
             
                    end
         | 
| 1708 1621 |  | 
| 1709 1622 | 
             
                    # @return
         | 
| 1710 | 
            -
                    # [ | 
| 1623 | 
            +
                    # ["consumer_tag = nil", "nowait = false"]
         | 
| 1711 1624 | 
             
                    def self.encode(channel, consumer_tag, nowait)
         | 
| 1712 | 
            -
                      buffer =  | 
| 1625 | 
            +
                      buffer = ""
         | 
| 1713 1626 | 
             
                      buffer << @packed_indexes
         | 
| 1714 | 
            -
                      buffer << consumer_tag.bytesize.chr
         | 
| 1715 | 
            -
                      buffer << consumer_tag
         | 
| 1627 | 
            +
                      buffer << consumer_tag.to_s.bytesize.chr
         | 
| 1628 | 
            +
                      buffer << consumer_tag.to_s
         | 
| 1716 1629 | 
             
                      bit_buffer = 0
         | 
| 1717 1630 | 
             
                      bit_buffer = bit_buffer | (1 << 0) if nowait
         | 
| 1718 1631 | 
             
                      buffer << [bit_buffer].pack(PACK_CHAR)
         | 
| 1719 1632 | 
             
                      MethodFrame.new(buffer, channel)
         | 
| 1720 1633 | 
             
                    end
         | 
| 1721 | 
            -
             | 
| 1722 1634 | 
             
                  end
         | 
| 1723 1635 |  | 
| 1724 1636 | 
             
                  class CancelOk < Protocol::Method
         | 
| @@ -1745,8 +1657,6 @@ module AMQ | |
| 1745 1657 | 
             
                    def self.has_content?
         | 
| 1746 1658 | 
             
                      false
         | 
| 1747 1659 | 
             
                    end
         | 
| 1748 | 
            -
             | 
| 1749 | 
            -
             | 
| 1750 1660 | 
             
                  end
         | 
| 1751 1661 |  | 
| 1752 1662 | 
             
                  class Publish < Protocol::Method
         | 
| @@ -1755,22 +1665,21 @@ module AMQ | |
| 1755 1665 | 
             
                    @index = 0x003C0028 # 60, 40, 3932200
         | 
| 1756 1666 | 
             
                    @packed_indexes = [60, 40].pack(PACK_UINT16_X2).freeze
         | 
| 1757 1667 |  | 
| 1758 | 
            -
             | 
| 1759 1668 | 
             
                    def self.has_content?
         | 
| 1760 1669 | 
             
                      true
         | 
| 1761 1670 | 
             
                    end
         | 
| 1762 1671 |  | 
| 1763 1672 | 
             
                    # @return
         | 
| 1764 | 
            -
                    # [ | 
| 1673 | 
            +
                    # ["ticket = 0", "exchange = EMPTY_STRING", "routing_key = EMPTY_STRING", "mandatory = false", "immediate = false", "user_headers = nil", "payload = """, "frame_size = nil"]
         | 
| 1765 1674 | 
             
                    def self.encode(channel, payload, user_headers, exchange, routing_key, mandatory, immediate, frame_size)
         | 
| 1766 1675 | 
             
                      ticket = 0
         | 
| 1767 | 
            -
                      buffer =  | 
| 1676 | 
            +
                      buffer = ""
         | 
| 1768 1677 | 
             
                      buffer << @packed_indexes
         | 
| 1769 1678 | 
             
                      buffer << [ticket].pack(PACK_UINT16)
         | 
| 1770 | 
            -
                      buffer << exchange.bytesize.chr
         | 
| 1771 | 
            -
                      buffer << exchange
         | 
| 1772 | 
            -
                      buffer << routing_key.bytesize.chr
         | 
| 1773 | 
            -
                      buffer << routing_key
         | 
| 1679 | 
            +
                      buffer << exchange.to_s.bytesize.chr
         | 
| 1680 | 
            +
                      buffer << exchange.to_s
         | 
| 1681 | 
            +
                      buffer << routing_key.to_s.bytesize.chr
         | 
| 1682 | 
            +
                      buffer << routing_key.to_s
         | 
| 1774 1683 | 
             
                      bit_buffer = 0
         | 
| 1775 1684 | 
             
                      bit_buffer = bit_buffer | (1 << 0) if mandatory
         | 
| 1776 1685 | 
             
                      bit_buffer = bit_buffer | (1 << 1) if immediate
         | 
| @@ -1785,7 +1694,6 @@ module AMQ | |
| 1785 1694 | 
             
                      frames << HeaderFrame.new(properties_payload, channel)
         | 
| 1786 1695 | 
             
                      frames + self.encode_body(payload, channel, frame_size)
         | 
| 1787 1696 | 
             
                    end
         | 
| 1788 | 
            -
             | 
| 1789 1697 | 
             
                  end
         | 
| 1790 1698 |  | 
| 1791 1699 | 
             
                  class Return < Protocol::Method
         | 
| @@ -1825,8 +1733,6 @@ module AMQ | |
| 1825 1733 | 
             
                    def self.has_content?
         | 
| 1826 1734 | 
             
                      true
         | 
| 1827 1735 | 
             
                    end
         | 
| 1828 | 
            -
             | 
| 1829 | 
            -
             | 
| 1830 1736 | 
             
                  end
         | 
| 1831 1737 |  | 
| 1832 1738 | 
             
                  class Deliver < Protocol::Method
         | 
| @@ -1870,8 +1776,6 @@ module AMQ | |
| 1870 1776 | 
             
                    def self.has_content?
         | 
| 1871 1777 | 
             
                      true
         | 
| 1872 1778 | 
             
                    end
         | 
| 1873 | 
            -
             | 
| 1874 | 
            -
             | 
| 1875 1779 | 
             
                  end
         | 
| 1876 1780 |  | 
| 1877 1781 | 
             
                  class Get < Protocol::Method
         | 
| @@ -1880,26 +1784,24 @@ module AMQ | |
| 1880 1784 | 
             
                    @index = 0x003C0046 # 60, 70, 3932230
         | 
| 1881 1785 | 
             
                    @packed_indexes = [60, 70].pack(PACK_UINT16_X2).freeze
         | 
| 1882 1786 |  | 
| 1883 | 
            -
             | 
| 1884 1787 | 
             
                    def self.has_content?
         | 
| 1885 1788 | 
             
                      false
         | 
| 1886 1789 | 
             
                    end
         | 
| 1887 1790 |  | 
| 1888 1791 | 
             
                    # @return
         | 
| 1889 | 
            -
                    # [ | 
| 1792 | 
            +
                    # ["ticket = 0", "queue = EMPTY_STRING", "no_ack = false"]
         | 
| 1890 1793 | 
             
                    def self.encode(channel, queue, no_ack)
         | 
| 1891 1794 | 
             
                      ticket = 0
         | 
| 1892 | 
            -
                      buffer =  | 
| 1795 | 
            +
                      buffer = ""
         | 
| 1893 1796 | 
             
                      buffer << @packed_indexes
         | 
| 1894 1797 | 
             
                      buffer << [ticket].pack(PACK_UINT16)
         | 
| 1895 | 
            -
                      buffer << queue.bytesize.chr
         | 
| 1896 | 
            -
                      buffer << queue
         | 
| 1798 | 
            +
                      buffer << queue.to_s.bytesize.chr
         | 
| 1799 | 
            +
                      buffer << queue.to_s
         | 
| 1897 1800 | 
             
                      bit_buffer = 0
         | 
| 1898 1801 | 
             
                      bit_buffer = bit_buffer | (1 << 0) if no_ack
         | 
| 1899 1802 | 
             
                      buffer << [bit_buffer].pack(PACK_CHAR)
         | 
| 1900 1803 | 
             
                      MethodFrame.new(buffer, channel)
         | 
| 1901 1804 | 
             
                    end
         | 
| 1902 | 
            -
             | 
| 1903 1805 | 
             
                  end
         | 
| 1904 1806 |  | 
| 1905 1807 | 
             
                  class GetOk < Protocol::Method
         | 
| @@ -1941,8 +1843,6 @@ module AMQ | |
| 1941 1843 | 
             
                    def self.has_content?
         | 
| 1942 1844 | 
             
                      true
         | 
| 1943 1845 | 
             
                    end
         | 
| 1944 | 
            -
             | 
| 1945 | 
            -
             | 
| 1946 1846 | 
             
                  end
         | 
| 1947 1847 |  | 
| 1948 1848 | 
             
                  class GetEmpty < Protocol::Method
         | 
| @@ -1969,8 +1869,6 @@ module AMQ | |
| 1969 1869 | 
             
                    def self.has_content?
         | 
| 1970 1870 | 
             
                      false
         | 
| 1971 1871 | 
             
                    end
         | 
| 1972 | 
            -
             | 
| 1973 | 
            -
             | 
| 1974 1872 | 
             
                  end
         | 
| 1975 1873 |  | 
| 1976 1874 | 
             
                  class Ack < Protocol::Method
         | 
| @@ -2001,9 +1899,9 @@ module AMQ | |
| 2001 1899 | 
             
                    end
         | 
| 2002 1900 |  | 
| 2003 1901 | 
             
                    # @return
         | 
| 2004 | 
            -
                    # [ | 
| 1902 | 
            +
                    # ["delivery_tag = false", "multiple = false"]
         | 
| 2005 1903 | 
             
                    def self.encode(channel, delivery_tag, multiple)
         | 
| 2006 | 
            -
                      buffer =  | 
| 1904 | 
            +
                      buffer = ""
         | 
| 2007 1905 | 
             
                      buffer << @packed_indexes
         | 
| 2008 1906 | 
             
                      buffer << AMQ::Hacks.pack_64_big_endian(delivery_tag)
         | 
| 2009 1907 | 
             
                      bit_buffer = 0
         | 
| @@ -2011,7 +1909,6 @@ module AMQ | |
| 2011 1909 | 
             
                      buffer << [bit_buffer].pack(PACK_CHAR)
         | 
| 2012 1910 | 
             
                      MethodFrame.new(buffer, channel)
         | 
| 2013 1911 | 
             
                    end
         | 
| 2014 | 
            -
             | 
| 2015 1912 | 
             
                  end
         | 
| 2016 1913 |  | 
| 2017 1914 | 
             
                  class Reject < Protocol::Method
         | 
| @@ -2020,15 +1917,14 @@ module AMQ | |
| 2020 1917 | 
             
                    @index = 0x003C005A # 60, 90, 3932250
         | 
| 2021 1918 | 
             
                    @packed_indexes = [60, 90].pack(PACK_UINT16_X2).freeze
         | 
| 2022 1919 |  | 
| 2023 | 
            -
             | 
| 2024 1920 | 
             
                    def self.has_content?
         | 
| 2025 1921 | 
             
                      false
         | 
| 2026 1922 | 
             
                    end
         | 
| 2027 1923 |  | 
| 2028 1924 | 
             
                    # @return
         | 
| 2029 | 
            -
                    # [ | 
| 1925 | 
            +
                    # ["delivery_tag = nil", "requeue = true"]
         | 
| 2030 1926 | 
             
                    def self.encode(channel, delivery_tag, requeue)
         | 
| 2031 | 
            -
                      buffer =  | 
| 1927 | 
            +
                      buffer = ""
         | 
| 2032 1928 | 
             
                      buffer << @packed_indexes
         | 
| 2033 1929 | 
             
                      buffer << AMQ::Hacks.pack_64_big_endian(delivery_tag)
         | 
| 2034 1930 | 
             
                      bit_buffer = 0
         | 
| @@ -2036,7 +1932,6 @@ module AMQ | |
| 2036 1932 | 
             
                      buffer << [bit_buffer].pack(PACK_CHAR)
         | 
| 2037 1933 | 
             
                      MethodFrame.new(buffer, channel)
         | 
| 2038 1934 | 
             
                    end
         | 
| 2039 | 
            -
             | 
| 2040 1935 | 
             
                  end
         | 
| 2041 1936 |  | 
| 2042 1937 | 
             
                  class RecoverAsync < Protocol::Method
         | 
| @@ -2045,22 +1940,20 @@ module AMQ | |
| 2045 1940 | 
             
                    @index = 0x003C0064 # 60, 100, 3932260
         | 
| 2046 1941 | 
             
                    @packed_indexes = [60, 100].pack(PACK_UINT16_X2).freeze
         | 
| 2047 1942 |  | 
| 2048 | 
            -
             | 
| 2049 1943 | 
             
                    def self.has_content?
         | 
| 2050 1944 | 
             
                      false
         | 
| 2051 1945 | 
             
                    end
         | 
| 2052 1946 |  | 
| 2053 1947 | 
             
                    # @return
         | 
| 2054 | 
            -
                    # [ | 
| 1948 | 
            +
                    # ["requeue = false"]
         | 
| 2055 1949 | 
             
                    def self.encode(channel, requeue)
         | 
| 2056 | 
            -
                      buffer =  | 
| 1950 | 
            +
                      buffer = ""
         | 
| 2057 1951 | 
             
                      buffer << @packed_indexes
         | 
| 2058 1952 | 
             
                      bit_buffer = 0
         | 
| 2059 1953 | 
             
                      bit_buffer = bit_buffer | (1 << 0) if requeue
         | 
| 2060 1954 | 
             
                      buffer << [bit_buffer].pack(PACK_CHAR)
         | 
| 2061 1955 | 
             
                      MethodFrame.new(buffer, channel)
         | 
| 2062 1956 | 
             
                    end
         | 
| 2063 | 
            -
             | 
| 2064 1957 | 
             
                  end
         | 
| 2065 1958 |  | 
| 2066 1959 | 
             
                  class Recover < Protocol::Method
         | 
| @@ -2069,22 +1962,20 @@ module AMQ | |
| 2069 1962 | 
             
                    @index = 0x003C006E # 60, 110, 3932270
         | 
| 2070 1963 | 
             
                    @packed_indexes = [60, 110].pack(PACK_UINT16_X2).freeze
         | 
| 2071 1964 |  | 
| 2072 | 
            -
             | 
| 2073 1965 | 
             
                    def self.has_content?
         | 
| 2074 1966 | 
             
                      false
         | 
| 2075 1967 | 
             
                    end
         | 
| 2076 1968 |  | 
| 2077 1969 | 
             
                    # @return
         | 
| 2078 | 
            -
                    # [ | 
| 1970 | 
            +
                    # ["requeue = false"]
         | 
| 2079 1971 | 
             
                    def self.encode(channel, requeue)
         | 
| 2080 | 
            -
                      buffer =  | 
| 1972 | 
            +
                      buffer = ""
         | 
| 2081 1973 | 
             
                      buffer << @packed_indexes
         | 
| 2082 1974 | 
             
                      bit_buffer = 0
         | 
| 2083 1975 | 
             
                      bit_buffer = bit_buffer | (1 << 0) if requeue
         | 
| 2084 1976 | 
             
                      buffer << [bit_buffer].pack(PACK_CHAR)
         | 
| 2085 1977 | 
             
                      MethodFrame.new(buffer, channel)
         | 
| 2086 1978 | 
             
                    end
         | 
| 2087 | 
            -
             | 
| 2088 1979 | 
             
                  end
         | 
| 2089 1980 |  | 
| 2090 1981 | 
             
                  class RecoverOk < Protocol::Method
         | 
| @@ -2105,8 +1996,6 @@ module AMQ | |
| 2105 1996 | 
             
                    def self.has_content?
         | 
| 2106 1997 | 
             
                      false
         | 
| 2107 1998 | 
             
                    end
         | 
| 2108 | 
            -
             | 
| 2109 | 
            -
             | 
| 2110 1999 | 
             
                  end
         | 
| 2111 2000 |  | 
| 2112 2001 | 
             
                  class Nack < Protocol::Method
         | 
| @@ -2139,9 +2028,9 @@ module AMQ | |
| 2139 2028 | 
             
                    end
         | 
| 2140 2029 |  | 
| 2141 2030 | 
             
                    # @return
         | 
| 2142 | 
            -
                    # [ | 
| 2031 | 
            +
                    # ["delivery_tag = false", "multiple = false", "requeue = true"]
         | 
| 2143 2032 | 
             
                    def self.encode(channel, delivery_tag, multiple, requeue)
         | 
| 2144 | 
            -
                      buffer =  | 
| 2033 | 
            +
                      buffer = ""
         | 
| 2145 2034 | 
             
                      buffer << @packed_indexes
         | 
| 2146 2035 | 
             
                      buffer << AMQ::Hacks.pack_64_big_endian(delivery_tag)
         | 
| 2147 2036 | 
             
                      bit_buffer = 0
         | 
| @@ -2150,24 +2039,19 @@ module AMQ | |
| 2150 2039 | 
             
                      buffer << [bit_buffer].pack(PACK_CHAR)
         | 
| 2151 2040 | 
             
                      MethodFrame.new(buffer, channel)
         | 
| 2152 2041 | 
             
                    end
         | 
| 2153 | 
            -
             | 
| 2154 2042 | 
             
                  end
         | 
| 2155 | 
            -
             | 
| 2156 2043 | 
             
                end
         | 
| 2157 2044 |  | 
| 2158 2045 | 
             
                class Tx < Protocol::Class
         | 
| 2159 2046 | 
             
                  @name = "tx"
         | 
| 2160 2047 | 
             
                  @method_id = 90
         | 
| 2161 2048 |  | 
| 2162 | 
            -
             | 
| 2163 | 
            -
             | 
| 2164 2049 | 
             
                  class Select < Protocol::Method
         | 
| 2165 2050 | 
             
                    @name = "tx.select"
         | 
| 2166 2051 | 
             
                    @method_id = 10
         | 
| 2167 2052 | 
             
                    @index = 0x005A000A # 90, 10, 5898250
         | 
| 2168 2053 | 
             
                    @packed_indexes = [90, 10].pack(PACK_UINT16_X2).freeze
         | 
| 2169 2054 |  | 
| 2170 | 
            -
             | 
| 2171 2055 | 
             
                    def self.has_content?
         | 
| 2172 2056 | 
             
                      false
         | 
| 2173 2057 | 
             
                    end
         | 
| @@ -2175,11 +2059,10 @@ module AMQ | |
| 2175 2059 | 
             
                    # @return
         | 
| 2176 2060 | 
             
                    # []
         | 
| 2177 2061 | 
             
                    def self.encode(channel)
         | 
| 2178 | 
            -
                      buffer =  | 
| 2062 | 
            +
                      buffer = ""
         | 
| 2179 2063 | 
             
                      buffer << @packed_indexes
         | 
| 2180 2064 | 
             
                      MethodFrame.new(buffer, channel)
         | 
| 2181 2065 | 
             
                    end
         | 
| 2182 | 
            -
             | 
| 2183 2066 | 
             
                  end
         | 
| 2184 2067 |  | 
| 2185 2068 | 
             
                  class SelectOk < Protocol::Method
         | 
| @@ -2200,8 +2083,6 @@ module AMQ | |
| 2200 2083 | 
             
                    def self.has_content?
         | 
| 2201 2084 | 
             
                      false
         | 
| 2202 2085 | 
             
                    end
         | 
| 2203 | 
            -
             | 
| 2204 | 
            -
             | 
| 2205 2086 | 
             
                  end
         | 
| 2206 2087 |  | 
| 2207 2088 | 
             
                  class Commit < Protocol::Method
         | 
| @@ -2210,7 +2091,6 @@ module AMQ | |
| 2210 2091 | 
             
                    @index = 0x005A0014 # 90, 20, 5898260
         | 
| 2211 2092 | 
             
                    @packed_indexes = [90, 20].pack(PACK_UINT16_X2).freeze
         | 
| 2212 2093 |  | 
| 2213 | 
            -
             | 
| 2214 2094 | 
             
                    def self.has_content?
         | 
| 2215 2095 | 
             
                      false
         | 
| 2216 2096 | 
             
                    end
         | 
| @@ -2218,11 +2098,10 @@ module AMQ | |
| 2218 2098 | 
             
                    # @return
         | 
| 2219 2099 | 
             
                    # []
         | 
| 2220 2100 | 
             
                    def self.encode(channel)
         | 
| 2221 | 
            -
                      buffer =  | 
| 2101 | 
            +
                      buffer = ""
         | 
| 2222 2102 | 
             
                      buffer << @packed_indexes
         | 
| 2223 2103 | 
             
                      MethodFrame.new(buffer, channel)
         | 
| 2224 2104 | 
             
                    end
         | 
| 2225 | 
            -
             | 
| 2226 2105 | 
             
                  end
         | 
| 2227 2106 |  | 
| 2228 2107 | 
             
                  class CommitOk < Protocol::Method
         | 
| @@ -2243,8 +2122,6 @@ module AMQ | |
| 2243 2122 | 
             
                    def self.has_content?
         | 
| 2244 2123 | 
             
                      false
         | 
| 2245 2124 | 
             
                    end
         | 
| 2246 | 
            -
             | 
| 2247 | 
            -
             | 
| 2248 2125 | 
             
                  end
         | 
| 2249 2126 |  | 
| 2250 2127 | 
             
                  class Rollback < Protocol::Method
         | 
| @@ -2253,7 +2130,6 @@ module AMQ | |
| 2253 2130 | 
             
                    @index = 0x005A001E # 90, 30, 5898270
         | 
| 2254 2131 | 
             
                    @packed_indexes = [90, 30].pack(PACK_UINT16_X2).freeze
         | 
| 2255 2132 |  | 
| 2256 | 
            -
             | 
| 2257 2133 | 
             
                    def self.has_content?
         | 
| 2258 2134 | 
             
                      false
         | 
| 2259 2135 | 
             
                    end
         | 
| @@ -2261,11 +2137,10 @@ module AMQ | |
| 2261 2137 | 
             
                    # @return
         | 
| 2262 2138 | 
             
                    # []
         | 
| 2263 2139 | 
             
                    def self.encode(channel)
         | 
| 2264 | 
            -
                      buffer =  | 
| 2140 | 
            +
                      buffer = ""
         | 
| 2265 2141 | 
             
                      buffer << @packed_indexes
         | 
| 2266 2142 | 
             
                      MethodFrame.new(buffer, channel)
         | 
| 2267 2143 | 
             
                    end
         | 
| 2268 | 
            -
             | 
| 2269 2144 | 
             
                  end
         | 
| 2270 2145 |  | 
| 2271 2146 | 
             
                  class RollbackOk < Protocol::Method
         | 
| @@ -2286,18 +2161,13 @@ module AMQ | |
| 2286 2161 | 
             
                    def self.has_content?
         | 
| 2287 2162 | 
             
                      false
         | 
| 2288 2163 | 
             
                    end
         | 
| 2289 | 
            -
             | 
| 2290 | 
            -
             | 
| 2291 2164 | 
             
                  end
         | 
| 2292 | 
            -
             | 
| 2293 2165 | 
             
                end
         | 
| 2294 2166 |  | 
| 2295 2167 | 
             
                class Confirm < Protocol::Class
         | 
| 2296 2168 | 
             
                  @name = "confirm"
         | 
| 2297 2169 | 
             
                  @method_id = 85
         | 
| 2298 2170 |  | 
| 2299 | 
            -
             | 
| 2300 | 
            -
             | 
| 2301 2171 | 
             
                  class Select < Protocol::Method
         | 
| 2302 2172 | 
             
                    @name = "confirm.select"
         | 
| 2303 2173 | 
             
                    @method_id = 10
         | 
| @@ -2323,16 +2193,15 @@ module AMQ | |
| 2323 2193 | 
             
                    end
         | 
| 2324 2194 |  | 
| 2325 2195 | 
             
                    # @return
         | 
| 2326 | 
            -
                    # [ | 
| 2196 | 
            +
                    # ["nowait = false"]
         | 
| 2327 2197 | 
             
                    def self.encode(channel, nowait)
         | 
| 2328 | 
            -
                      buffer =  | 
| 2198 | 
            +
                      buffer = ""
         | 
| 2329 2199 | 
             
                      buffer << @packed_indexes
         | 
| 2330 2200 | 
             
                      bit_buffer = 0
         | 
| 2331 2201 | 
             
                      bit_buffer = bit_buffer | (1 << 0) if nowait
         | 
| 2332 2202 | 
             
                      buffer << [bit_buffer].pack(PACK_CHAR)
         | 
| 2333 2203 | 
             
                      MethodFrame.new(buffer, channel)
         | 
| 2334 2204 | 
             
                    end
         | 
| 2335 | 
            -
             | 
| 2336 2205 | 
             
                  end
         | 
| 2337 2206 |  | 
| 2338 2207 | 
             
                  class SelectOk < Protocol::Method
         | 
| @@ -2357,16 +2226,13 @@ module AMQ | |
| 2357 2226 | 
             
                    # @return
         | 
| 2358 2227 | 
             
                    # []
         | 
| 2359 2228 | 
             
                    def self.encode(channel)
         | 
| 2360 | 
            -
                      buffer =  | 
| 2229 | 
            +
                      buffer = ""
         | 
| 2361 2230 | 
             
                      buffer << @packed_indexes
         | 
| 2362 2231 | 
             
                      MethodFrame.new(buffer, channel)
         | 
| 2363 2232 | 
             
                    end
         | 
| 2364 | 
            -
             | 
| 2365 2233 | 
             
                  end
         | 
| 2366 | 
            -
             | 
| 2367 2234 | 
             
                end
         | 
| 2368 2235 |  | 
| 2369 | 
            -
             | 
| 2370 2236 | 
             
                METHODS = begin
         | 
| 2371 2237 | 
             
                  Method.methods.inject(Hash.new) do |hash, klass|
         | 
| 2372 2238 | 
             
                    hash.merge!(klass.index => klass)
         | 
| @@ -2374,4 +2240,3 @@ module AMQ | |
| 2374 2240 | 
             
                end
         | 
| 2375 2241 | 
             
              end
         | 
| 2376 2242 | 
             
            end
         | 
| 2377 | 
            -
             |