class RequestInterceptor::WebMockManager
Constants
- WebMockConfigurationCache
Attributes
applications[R]
callback[R]
Public Class Methods
new(applications, callback = nil)
click to toggle source
# File lib/request_interceptor/webmock_manager.rb, line 4 def initialize(applications, callback = nil) @applications = applications @callback = callback end
Public Instance Methods
run_simulation() { || ... }
click to toggle source
# File lib/request_interceptor/webmock_manager.rb, line 9 def run_simulation original_webmock_configuration = setup yield ensure teardown(original_webmock_configuration) end
Private Instance Methods
setup()
click to toggle source
# File lib/request_interceptor/webmock_manager.rb, line 24 def setup original_configuration = WebMockConfigurationCache.new original_configuration.enabled_previously = WebMock.enabled? original_configuration.request_stubs = WebMock::StubRegistry.instance.request_stubs.dup || [] original_configuration.callbacks = WebMock::CallbackRegistry.callbacks.dup || [] original_configuration.allow_net_connect = WebMock::Config.instance.allow_net_connect original_configuration.allow_localhost = WebMock::Config.instance.allow_localhost original_configuration.show_body_diff = WebMock::Config.instance.show_body_diff original_configuration.show_stubbing_instructions = WebMock::Config.instance.show_stubbing_instructions WebMock.after_request(&callback) unless callback.nil? applications.each do |application| WebMock.stub_request(:any, application.pattern).to_rack(application) end WebMock.allow_net_connect! WebMock.hide_body_diff! WebMock.hide_stubbing_instructions! WebMock.enable! original_configuration end
teardown(original_configuration)
click to toggle source
# File lib/request_interceptor/webmock_manager.rb, line 48 def teardown(original_configuration) WebMock::Config.instance.allow_net_connect = original_configuration.allow_net_connect WebMock::Config.instance.allow_localhost = original_configuration.allow_localhost WebMock::Config.instance.show_body_diff = original_configuration.show_body_diff WebMock::Config.instance.show_stubbing_instructions = original_configuration.show_stubbing_instructions WebMock::CallbackRegistry.reset original_configuration.callbacks.each do |callback_settings| WebMock.after_request(callback_settings[:options], &callback_settings[:block]) end WebMock::StubRegistry.instance.request_stubs = original_configuration.request_stubs WebMock.disable! unless original_configuration.enabled_previously end