module TraceView::Inst::CurlMultiCM

CurlMultiCM

This module contains the class method wrappers for the CurlMulti class. This module should be extended by CurlMulti.

Public Class Methods

extended(klass) click to toggle source
# File lib/traceview/inst/curb.rb, line 204
def self.extended(klass)
  ::TraceView::Util.class_method_alias(klass, :http, ::Curl::Multi)
end

Public Instance Methods

http_with_traceview(urls_with_config, multi_options={}, &block) click to toggle source

http_with_traceview

::Curl::Multi.new.http wrapper

# File lib/traceview/inst/curb.rb, line 213
def http_with_traceview(urls_with_config, multi_options={}, &block)
  # If we're not tracing, just do a fast return.
  if !TraceView.tracing?
    return http_without_traceview(urls_with_config, multi_options, &block)
  end

  begin
    kvs = {}
    kvs[:Backtrace] = TraceView::API.backtrace if TraceView::Config[:curb][:collect_backtraces]

    TraceView::API.log_entry(:curb_multi, kvs)

    # The core curb call
    http_without_traceview(urls_with_config, multi_options, &block)
  rescue => e
    TraceView::API.log_exception(:curb_multi, e)
    raise e
  ensure
    TraceView::API.log_exit(:curb_multi)
  end
end