| 1234567891011121314151617181920212223242526272829303132333435 |
- require 'typhoeus'
- module Docs
- class Request < Typhoeus::Request
- include Instrumentable
- DEFAULT_OPTIONS = {
- followlocation: true,
- headers: { 'User-Agent' => 'devdocs.io' }
- }
- def self.run(*args, &block)
- request = new(*args)
- request.on_complete(&block) if block
- request.run
- end
- def initialize(url, options = {})
- super url.to_s, DEFAULT_OPTIONS.merge(options)
- end
- def response=(value)
- value.extend Response if value
- super
- end
- def run
- instrument 'response.request', url: base_url do |payload|
- response = super
- payload[:response] = response
- response
- end
- end
- end
- end
|