Sha256: 90b2bf9bc630ae7064c5d6ec66588e71f917c091eb529af21ccf893849ebf0e9

Contents?: true

Size: 1.02 KB

Versions: 4

Compression:

Stored size: 1.02 KB

Contents

require 'eventmachine'
require 'em-http'

require 'muxer/version'
require 'muxer/request'
require 'muxer/multiplexer'

# Muxer is a parallel request module that allows timeouts for each
# individual request as well as a global timeout for all requests.
# In addition to the specific timeouts, Muxer will allow a pending
# request to continue pending even if its timeout has passed as long
# as there is still a request waiting that has a longer timeout

module Muxer
  # Example Usage:
  #
  # response = Muxer.execute do |muxer|
  #   muxer.add_url "http://www.rubydoc.info", timeout: 0.5
  #   muxer.add_url "https://www.google.com", timeout: 0.25
  # end
  #
  # In the above example, Google's response could continue pending if
  # rubydoc.info had not yet returned or passed its timeout.
  #
  # Returns a hash like:
  # ```ruby
  # {
  #   failed: [],
  #   completed: []
  # }
  # ```
  #
  # @return [Hash]
  def self.execute
    multiplexer = Multiplexer.new

    yield multiplexer if block_given?

    multiplexer.execute
  end
end

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
muxer-0.3.4 lib/muxer.rb
muxer-0.3.3 lib/muxer.rb
muxer-0.3.2 lib/muxer.rb
muxer-0.3.0 lib/muxer.rb