class Curl::Easy

Attributes

_nr_header_str[RW]
_nr_http_verb[RW]
_nr_instrumented[RW]
_nr_original_on_complete[RW]
_nr_original_on_header[RW]
_nr_serial[RW]

Public Instance Methods

header_str()
Also aliased as: header_str_without_newrelic
header_str_with_newrelic() click to toggle source

We override this method in order to ensure access to #header_str even though we use an on_header callback

# File lib/new_relic/agent/instrumentation/curb.rb, line 75
def header_str_with_newrelic
  if self._nr_serial
    self._nr_header_str
  else
    # Since we didn't install a header callback for a non-serial request,
    # just fall back to the original implementation.
    header_str_without_newrelic
  end
end
Also aliased as: header_str
header_str_without_newrelic()
Alias for: header_str
http( verb )
Also aliased as: http_without_newrelic
Alias for: http_with_newrelic
http_head(*args, &blk)
Also aliased as: http_head_without_newrelic
http_head_with_newrelic(*args, &blk) click to toggle source

We have to hook these three methods separately, as they don't use #http

# File lib/new_relic/agent/instrumentation/curb.rb, line 32
def http_head_with_newrelic(*args, &blk)
  self._nr_http_verb = :HEAD
  http_head_without_newrelic(*args, &blk)
end
Also aliased as: http_head
http_head_without_newrelic(*args, &blk)
Alias for: http_head
http_post(*args, &blk)
Also aliased as: http_post_without_newrelic
http_post_with_newrelic(*args, &blk) click to toggle source
# File lib/new_relic/agent/instrumentation/curb.rb, line 39
def http_post_with_newrelic(*args, &blk)
  self._nr_http_verb = :POST
  http_post_without_newrelic(*args, &blk)
end
Also aliased as: http_post
http_post_without_newrelic(*args, &blk)
Alias for: http_post
http_put(*args, &blk)
Also aliased as: http_put_without_newrelic
http_put_with_newrelic(*args, &blk) click to toggle source
# File lib/new_relic/agent/instrumentation/curb.rb, line 46
def http_put_with_newrelic(*args, &blk)
  self._nr_http_verb = :PUT
  http_put_without_newrelic(*args, &blk)
end
Also aliased as: http_put
http_put_without_newrelic(*args, &blk)
Alias for: http_put
http_with_newrelic( verb ) click to toggle source

Hook the http method to set the verb.

# File lib/new_relic/agent/instrumentation/curb.rb, line 55
def http_with_newrelic( verb )
  self._nr_http_verb = verb.to_s.upcase
  http_without_newrelic( verb )
end
Also aliased as: http
http_without_newrelic( verb )
Alias for: http
perform()
Also aliased as: perform_without_newrelic
perform_with_newrelic() click to toggle source

Hook the perform method to mark the request as non-parallel.

# File lib/new_relic/agent/instrumentation/curb.rb, line 65
def perform_with_newrelic
  self._nr_serial = true
  perform_without_newrelic
end
Also aliased as: perform
perform_without_newrelic()
Alias for: perform