HEX
Server: Apache
System: Linux pdx1-shared-a1-38 6.6.104-grsec-jammy+ #3 SMP Tue Sep 16 00:28:11 UTC 2025 x86_64
User: mmickelson (3396398)
PHP: 8.1.31
Disabled: NONE
Upload Files
File: //usr/share/rubygems-integration/all/gems/bunny-2.19.0/lib/bunny/test_kit.rb
# -*- coding: utf-8 -*-

require "timeout"

module Bunny
  # Unit, integration and stress testing toolkit
  class TestKit
    class << self

      def poll_while(timeout = 60, &probe)
        Timeout.timeout(timeout) {
          sleep 0.1 while probe.call
        }
      end
      def poll_until(timeout = 60, &probe)
        Timeout.timeout(timeout) {
          sleep 0.1 until probe.call
        }
      end

      # @return [Integer] Random integer in the range of [a, b]
      # @api private
      def random_in_range(a, b)
        Range.new(a, b).to_a.sample
      end

      # @param  [Integer] a Lower bound of message size, in KB
      # @param  [Integer] b Upper bound of message size, in KB
      # @param  [Integer] i Random number to use in message generation
      # @return [String] Message payload of length in the given range, with non-ASCII characters
      # @api public
      def message_in_kb(a, b, i)
        s = "Ю#{i}"
        n = random_in_range(a, b) / s.bytesize

        s * n * 1024
      end

    end
  end
end