A Net::HTTP response that has already been read raises an IOError when read_body is called with a destination string or block.
This causes a problem when VCR records a response--it reads the body before yielding the response, and if the code that is consuming the HTTP requests uses read_body, it can cause an error.
This is a bit of a hack, but it allows a Net::HTTP response to be "re-read" after it has aleady been read. This attemps to preserve the behavior of read_body, acting just as if it had never been read.
# File lib/webmock/webmock.rb, line 63 def self.after_request(options={}, &block) WebMock::CallbackRegistry.add_callback(options, block) end
# File lib/webmock/webmock.rb, line 28 def self.allow_net_connect!(options = {}) Config.instance.allow_net_connect = true Config.instance.net_http_connect_on_start = options[:net_http_connect_on_start] end
# File lib/webmock/webmock.rb, line 33 def self.disable_net_connect!(options = {}) Config.instance.allow_net_connect = false Config.instance.allow_localhost = options[:allow_localhost] Config.instance.allow = options[:allow] Config.instance.net_http_connect_on_start = options[:net_http_connect_on_start] end
# File lib/webmock/webmock.rb, line 3 def self.included(clazz) WebMock::Deprecation.warning("include WebMock is deprecated. Please include WebMock::API instead") if clazz.instance_methods.map(&:to_s).include?('request') warn "WebMock#request was not included in #{clazz} to avoid name collision" else clazz.class_eval do def request(method, uri) WebMock::Deprecation.warning("WebMock#request is deprecated. Please use WebMock::API#a_request method instead") WebMock.a_request(method, uri) end end end end
# File lib/webmock/webmock.rb, line 40 def self.net_connect_allowed?(uri = nil) if uri.is_a?(String) uri = WebMock::Util::URI.normalize_uri(uri) end Config.instance.allow_net_connect || (Config.instance.allow_localhost && WebMock::Util::URI.is_uri_localhost?(uri)) || Config.instance.allow && Config.instance.allow.include?(uri.host) end
# File lib/webmock/webmock.rb, line 71 def self.print_executed_requests puts WebMock::RequestExecutionVerifier.executed_requests_message end
# File lib/webmock/webmock.rb, line 67 def self.registered_request?(request_signature) WebMock::StubRegistry.instance.registered_request?(request_signature) end
# File lib/webmock/webmock.rb, line 49 def self.reset! WebMock::RequestRegistry.instance.reset! WebMock::StubRegistry.instance.reset! end
# File lib/webmock/webmock.rb, line 59 def self.reset_callbacks WebMock::CallbackRegistry.reset end
Generated with the Darkfish Rdoc Generator 2.