vcr 2.0.0.rc1 → 2.0.0.rc2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/.gitignore +2 -0
- data/.limited_red +1 -0
- data/.travis.yml +10 -1
- data/.yardopts +9 -0
- data/CHANGELOG.md +51 -1
- data/Gemfile +5 -1
- data/LICENSE +1 -1
- data/README.md +23 -28
- data/Rakefile +63 -18
- data/Upgrade.md +200 -0
- data/features/.nav +2 -0
- data/features/cassettes/automatic_re_recording.feature +19 -15
- data/features/cassettes/dynamic_erb.feature +12 -4
- data/features/cassettes/exclusive.feature +31 -23
- data/features/cassettes/format.feature +54 -30
- data/features/cassettes/naming.feature +1 -1
- data/features/cassettes/update_content_length_header.feature +16 -12
- data/features/configuration/allow_http_connections_when_no_cassette.feature +1 -1
- data/features/configuration/debug_logging.feature +52 -0
- data/features/configuration/filter_sensitive_data.feature +4 -4
- data/features/configuration/hook_into.feature +5 -2
- data/features/configuration/ignore_request.feature +5 -3
- data/features/configuration/preserve_exact_body_bytes.feature +103 -0
- data/features/hooks/after_http_request.feature +17 -4
- data/features/hooks/around_http_request.feature +2 -1
- data/features/hooks/before_http_request.feature +25 -8
- data/features/hooks/before_playback.feature +16 -12
- data/features/hooks/before_record.feature +2 -2
- data/features/http_libraries/em_http_request.feature +82 -58
- data/features/http_libraries/net_http.feature +6 -6
- data/features/middleware/faraday.feature +2 -1
- data/features/middleware/rack.feature +2 -2
- data/features/record_modes/all.feature +19 -15
- data/features/record_modes/new_episodes.feature +17 -13
- data/features/record_modes/none.feature +15 -11
- data/features/record_modes/once.feature +16 -12
- data/features/request_matching/body.feature +28 -20
- data/features/request_matching/custom_matcher.feature +28 -20
- data/features/request_matching/headers.feature +34 -26
- data/features/request_matching/host.feature +28 -20
- data/features/request_matching/identical_request_sequence.feature +28 -20
- data/features/request_matching/method.feature +28 -20
- data/features/request_matching/path.feature +28 -20
- data/features/request_matching/playback_repeats.feature +28 -20
- data/features/request_matching/uri.feature +28 -20
- data/features/request_matching/uri_without_param.feature +28 -20
- data/features/support/env.rb +7 -6
- data/features/support/vcr_cucumber_helpers.rb +1 -0
- data/features/test_frameworks/cucumber.feature +8 -8
- data/features/test_frameworks/rspec_macro.feature +4 -4
- data/features/test_frameworks/rspec_metadata.feature +6 -6
- data/features/test_frameworks/shoulda.feature +1 -1
- data/features/test_frameworks/test_unit.feature +1 -1
- data/lib/vcr.rb +156 -5
- data/lib/vcr/cassette.rb +80 -30
- data/lib/vcr/cassette/http_interaction_list.rb +33 -4
- data/lib/vcr/cassette/migrator.rb +2 -3
- data/lib/vcr/cassette/reader.rb +1 -0
- data/lib/vcr/cassette/serializers.rb +22 -0
- data/lib/vcr/cassette/serializers/json.rb +27 -2
- data/lib/vcr/cassette/serializers/psych.rb +26 -2
- data/lib/vcr/cassette/serializers/syck.rb +28 -2
- data/lib/vcr/cassette/serializers/yaml.rb +28 -2
- data/lib/vcr/configuration.rb +348 -10
- data/lib/vcr/deprecations.rb +8 -0
- data/lib/vcr/errors.rb +40 -0
- data/lib/vcr/extensions/net_http_response.rb +12 -11
- data/lib/vcr/library_hooks.rb +1 -0
- data/lib/vcr/library_hooks/excon.rb +24 -3
- data/lib/vcr/library_hooks/fakeweb.rb +32 -16
- data/lib/vcr/library_hooks/faraday.rb +3 -0
- data/lib/vcr/library_hooks/typhoeus.rb +40 -37
- data/lib/vcr/library_hooks/webmock.rb +54 -34
- data/lib/vcr/middleware/faraday.rb +13 -0
- data/lib/vcr/middleware/rack.rb +35 -0
- data/lib/vcr/request_handler.rb +60 -8
- data/lib/vcr/request_ignorer.rb +1 -0
- data/lib/vcr/request_matcher_registry.rb +28 -0
- data/lib/vcr/structs.rb +245 -38
- data/lib/vcr/test_frameworks/cucumber.rb +10 -0
- data/lib/vcr/test_frameworks/rspec.rb +26 -1
- data/lib/vcr/util/hooks.rb +29 -27
- data/lib/vcr/util/internet_connection.rb +2 -0
- data/lib/vcr/util/logger.rb +25 -0
- data/lib/vcr/util/variable_args_block_caller.rb +1 -0
- data/lib/vcr/util/version_checker.rb +1 -0
- data/lib/vcr/version.rb +8 -1
- data/spec/capture_warnings.rb +3 -3
- data/spec/monkey_patches.rb +28 -13
- data/spec/spec_helper.rb +17 -0
- data/spec/support/http_library_adapters.rb +7 -4
- data/spec/support/shared_example_groups/hook_into_http_library.rb +96 -32
- data/spec/support/shared_example_groups/request_hooks.rb +9 -8
- data/spec/support/sinatra_app.rb +3 -1
- data/spec/support/vcr_localhost_server.rb +1 -0
- data/spec/vcr/cassette/http_interaction_list_spec.rb +119 -54
- data/spec/vcr/cassette/migrator_spec.rb +19 -6
- data/spec/vcr/cassette/serializers_spec.rb +51 -6
- data/spec/vcr/cassette_spec.rb +44 -19
- data/spec/vcr/configuration_spec.rb +91 -6
- data/spec/vcr/library_hooks/excon_spec.rb +54 -16
- data/spec/vcr/library_hooks/fakeweb_spec.rb +12 -21
- data/spec/vcr/library_hooks/typhoeus_spec.rb +2 -29
- data/spec/vcr/library_hooks/webmock_spec.rb +4 -18
- data/spec/vcr/middleware/faraday_spec.rb +1 -16
- data/spec/vcr/structs_spec.rb +194 -61
- data/spec/vcr/test_frameworks/rspec_spec.rb +10 -0
- data/spec/vcr/util/hooks_spec.rb +104 -56
- data/spec/vcr/util/version_checker_spec.rb +45 -0
- data/spec/vcr_spec.rb +11 -0
- data/vcr.gemspec +30 -34
- metadata +149 -95
- data/spec/support/shared_example_groups/version_checking.rb +0 -34
|
@@ -23,6 +23,16 @@ describe VCR::RSpec::Metadata, :skip_vcr_reset do
|
|
|
23
23
|
end
|
|
24
24
|
end
|
|
25
25
|
|
|
26
|
+
context 'with the cassette name overridden at the example group level', :vcr => { :cassette_name => 'foo' } do
|
|
27
|
+
it 'overrides the cassette name for an example' do
|
|
28
|
+
VCR.current_cassette.name.should eq('foo')
|
|
29
|
+
end
|
|
30
|
+
|
|
31
|
+
it 'overrides the cassette name for another example' do
|
|
32
|
+
VCR.current_cassette.name.should eq('foo')
|
|
33
|
+
end
|
|
34
|
+
end
|
|
35
|
+
|
|
26
36
|
it 'allows the cassette name to be overriden', :vcr => { :cassette_name => 'foo' } do
|
|
27
37
|
VCR.current_cassette.name.should eq('foo')
|
|
28
38
|
end
|
data/spec/vcr/util/hooks_spec.rb
CHANGED
|
@@ -1,5 +1,73 @@
|
|
|
1
1
|
require 'spec_helper'
|
|
2
2
|
|
|
3
|
+
describe VCR::Hooks::FilteredHook do
|
|
4
|
+
describe "#conditionally_invoke" do
|
|
5
|
+
it 'invokes the hook' do
|
|
6
|
+
called = false
|
|
7
|
+
subject.hook = lambda { called = true }
|
|
8
|
+
subject.conditionally_invoke
|
|
9
|
+
called.should be_true
|
|
10
|
+
end
|
|
11
|
+
|
|
12
|
+
it 'forwards the given arguments to the hook' do
|
|
13
|
+
args = nil
|
|
14
|
+
subject.hook = lambda { |a, b| args = [a, b] }
|
|
15
|
+
subject.conditionally_invoke(3, 5)
|
|
16
|
+
args.should eq([3, 5])
|
|
17
|
+
end
|
|
18
|
+
|
|
19
|
+
it 'forwards only as many arguments as the hook block accepts' do
|
|
20
|
+
args = nil
|
|
21
|
+
subject.hook = lambda { |a| args = [a] }
|
|
22
|
+
subject.conditionally_invoke(3, 5)
|
|
23
|
+
args.should eq([3])
|
|
24
|
+
end
|
|
25
|
+
|
|
26
|
+
it 'does not invoke the hook if all of the filters return false' do
|
|
27
|
+
called = false
|
|
28
|
+
subject.hook = lambda { called = true }
|
|
29
|
+
subject.filters = lambda { false }
|
|
30
|
+
subject.conditionally_invoke
|
|
31
|
+
called.should be_false
|
|
32
|
+
end
|
|
33
|
+
|
|
34
|
+
it 'does not invoke the hook if any of the filters returns false' do
|
|
35
|
+
called = false
|
|
36
|
+
subject.hook = lambda { called = true }
|
|
37
|
+
subject.filters = [lambda { false }, lambda { true }]
|
|
38
|
+
subject.conditionally_invoke
|
|
39
|
+
called.should be_false
|
|
40
|
+
end
|
|
41
|
+
|
|
42
|
+
it 'forwards arguments to the filters' do
|
|
43
|
+
filter_args = nil
|
|
44
|
+
subject.filters = lambda { |a, b| filter_args = [a, b]; false }
|
|
45
|
+
subject.conditionally_invoke(3, 5)
|
|
46
|
+
filter_args.should eq([3, 5])
|
|
47
|
+
end
|
|
48
|
+
|
|
49
|
+
it 'forwards only as many arguments as the filter blocks accept' do
|
|
50
|
+
args1 = args2 = nil
|
|
51
|
+
subject.filters = [
|
|
52
|
+
lambda { |a| args1 = [a]; true },
|
|
53
|
+
lambda { |a, b| args2 = [a, b]; false }
|
|
54
|
+
]
|
|
55
|
+
|
|
56
|
+
subject.conditionally_invoke(3, 5)
|
|
57
|
+
args1.should eq([3])
|
|
58
|
+
args2.should eq([3, 5])
|
|
59
|
+
end
|
|
60
|
+
|
|
61
|
+
it '#to_procs the filter objects' do
|
|
62
|
+
filter_called = false
|
|
63
|
+
subject.hook = lambda { }
|
|
64
|
+
subject.filters = [stub(:to_proc => lambda { filter_called = true })]
|
|
65
|
+
subject.conditionally_invoke
|
|
66
|
+
filter_called.should be_true
|
|
67
|
+
end
|
|
68
|
+
end
|
|
69
|
+
end
|
|
70
|
+
|
|
3
71
|
describe VCR::Hooks do
|
|
4
72
|
let(:hooks_class) { Class.new { include VCR::Hooks } }
|
|
5
73
|
|
|
@@ -9,8 +77,22 @@ describe VCR::Hooks do
|
|
|
9
77
|
before(:each) do
|
|
10
78
|
hooks_class.instance_eval do
|
|
11
79
|
define_hook :before_foo
|
|
12
|
-
define_hook :before_bar
|
|
80
|
+
define_hook :before_bar, :prepend
|
|
81
|
+
end
|
|
82
|
+
end
|
|
83
|
+
|
|
84
|
+
it 'allows the class to override the hook method and super to the main definition' do
|
|
85
|
+
override_called = nil
|
|
86
|
+
|
|
87
|
+
hooks_class.class_eval do
|
|
88
|
+
define_method :before_foo do |&block|
|
|
89
|
+
override_called = true
|
|
90
|
+
super(&block)
|
|
91
|
+
end
|
|
13
92
|
end
|
|
93
|
+
|
|
94
|
+
subject.before_foo { }
|
|
95
|
+
override_called.should be_true
|
|
14
96
|
end
|
|
15
97
|
|
|
16
98
|
describe '#clear_hooks' do
|
|
@@ -22,14 +104,8 @@ describe VCR::Hooks do
|
|
|
22
104
|
end
|
|
23
105
|
end
|
|
24
106
|
|
|
25
|
-
describe '#invoke_hook
|
|
26
|
-
it '
|
|
27
|
-
subject.before_foo { 17 }
|
|
28
|
-
subject.before_foo { 12 }
|
|
29
|
-
subject.invoke_hook(:before_foo).should eq([17, 12])
|
|
30
|
-
end
|
|
31
|
-
|
|
32
|
-
it 'invokes each of the :before_foo callbacks' do
|
|
107
|
+
describe '#invoke_hook' do
|
|
108
|
+
it 'invokes each of the callbacks' do
|
|
33
109
|
subject.before_foo { invocations << :callback_1 }
|
|
34
110
|
subject.before_foo { invocations << :callback_2 }
|
|
35
111
|
|
|
@@ -38,65 +114,37 @@ describe VCR::Hooks do
|
|
|
38
114
|
invocations.should eq([:callback_1, :callback_2])
|
|
39
115
|
end
|
|
40
116
|
|
|
41
|
-
it '
|
|
42
|
-
subject.
|
|
43
|
-
subject.
|
|
44
|
-
|
|
117
|
+
it 'maps the return value of each callback' do
|
|
118
|
+
subject.before_foo { 17 }
|
|
119
|
+
subject.before_foo { 12 }
|
|
120
|
+
subject.invoke_hook(:before_foo).should eq([17, 12])
|
|
45
121
|
end
|
|
46
122
|
|
|
47
|
-
it 'does not invoke any
|
|
48
|
-
subject.before_foo(:
|
|
49
|
-
subject.invoke_hook(:before_foo)
|
|
123
|
+
it 'does not invoke any filtered callbacks' do
|
|
124
|
+
subject.before_foo(:real?) { invocations << :blue_callback }
|
|
125
|
+
subject.invoke_hook(:before_foo, stub(:real? => false))
|
|
50
126
|
invocations.should be_empty
|
|
51
127
|
end
|
|
52
128
|
|
|
53
|
-
it '
|
|
54
|
-
subject.
|
|
55
|
-
subject.
|
|
56
|
-
|
|
57
|
-
end
|
|
58
|
-
|
|
59
|
-
it 'only passes along 1 argument when the block accepts only 1 arguments' do
|
|
60
|
-
subject.before_foo(&lambda { |a| invocations << a })
|
|
61
|
-
subject.invoke_hook(:before_foo, :arg1, :arg2)
|
|
62
|
-
invocations.flatten.should eq([:arg1])
|
|
63
|
-
end
|
|
64
|
-
|
|
65
|
-
it 'passes along all arguments when the block accepts a variable number of args' do
|
|
66
|
-
subject.before_foo(&lambda { |*a| invocations << a })
|
|
67
|
-
subject.invoke_hook(:before_foo, :arg1, :arg2)
|
|
68
|
-
invocations.flatten.should eq([:arg1, :arg2])
|
|
129
|
+
it 'invokes them in reverse order if the hook was defined with :prepend' do
|
|
130
|
+
subject.before_bar { 17 }
|
|
131
|
+
subject.before_bar { 12 }
|
|
132
|
+
subject.invoke_hook(:before_bar).should eq([12, 17])
|
|
69
133
|
end
|
|
70
134
|
end
|
|
71
135
|
|
|
72
|
-
describe "#
|
|
73
|
-
it '
|
|
74
|
-
subject.
|
|
75
|
-
subject.before_foo(:green) { invocations << :callback_2 }
|
|
76
|
-
|
|
77
|
-
invocations.should be_empty
|
|
78
|
-
subject.invoke_tagged_hook(:before_foo, :green)
|
|
79
|
-
invocations.should eq([:callback_1, :callback_2])
|
|
80
|
-
end
|
|
81
|
-
|
|
82
|
-
it 'invokes each of the :before_foo callbacks with no tag' do
|
|
83
|
-
subject.before_foo { invocations << :no_tag_1 }
|
|
84
|
-
subject.before_foo { invocations << :no_tag_2 }
|
|
85
|
-
|
|
86
|
-
subject.invoke_hook(:before_foo, :green)
|
|
87
|
-
invocations.should eq([:no_tag_1, :no_tag_2])
|
|
136
|
+
describe "#has_hooks_for?" do
|
|
137
|
+
it 'returns false when given an unrecognized hook name' do
|
|
138
|
+
subject.should_not have_hooks_for(:abcd)
|
|
88
139
|
end
|
|
89
140
|
|
|
90
|
-
it '
|
|
91
|
-
subject.
|
|
92
|
-
subject.invoke_tagged_hook(:before_foo, :green)
|
|
93
|
-
invocations.should be_empty
|
|
141
|
+
it 'returns false when given the name of a defined hook that has no registered callbacks' do
|
|
142
|
+
subject.should_not have_hooks_for(:before_foo)
|
|
94
143
|
end
|
|
95
144
|
|
|
96
|
-
it '
|
|
97
|
-
subject.before_foo
|
|
98
|
-
subject.
|
|
99
|
-
invocations.flatten.should eq([:arg1, :arg2])
|
|
145
|
+
it 'returns true when given the name of a defined hook that has registered callbacks' do
|
|
146
|
+
subject.before_foo { }
|
|
147
|
+
subject.should have_hooks_for(:before_foo)
|
|
100
148
|
end
|
|
101
149
|
end
|
|
102
150
|
end
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
require 'spec_helper'
|
|
2
|
+
|
|
3
|
+
module VCR
|
|
4
|
+
describe VersionChecker do
|
|
5
|
+
it 'raises an error if the major version is too low' do
|
|
6
|
+
checker = VersionChecker.new('foo', '0.7.3', '1.0.0', '1.1')
|
|
7
|
+
expect { checker.check_version! }.to raise_error(Errors::LibraryVersionTooLowError)
|
|
8
|
+
end
|
|
9
|
+
|
|
10
|
+
it 'raises an error if the minor version is too low' do
|
|
11
|
+
checker = VersionChecker.new('foo', '1.0.99', '1.1.3', '1.2')
|
|
12
|
+
expect { checker.check_version! }.to raise_error(Errors::LibraryVersionTooLowError)
|
|
13
|
+
end
|
|
14
|
+
|
|
15
|
+
it 'raises an error if the patch version is too low' do
|
|
16
|
+
checker = VersionChecker.new('foo', '1.0.8', '1.0.10', '1.2')
|
|
17
|
+
expect { checker.check_version! }.to raise_error(Errors::LibraryVersionTooLowError)
|
|
18
|
+
end
|
|
19
|
+
|
|
20
|
+
it 'prints a warning if the major version is too high' do
|
|
21
|
+
checker = VersionChecker.new('foo', '2.0.0', '1.0.0', '1.1')
|
|
22
|
+
Kernel.should_receive(:warn).with(/may not work with this version/)
|
|
23
|
+
checker.check_version!
|
|
24
|
+
end
|
|
25
|
+
|
|
26
|
+
it 'prints a warning if the minor version is too high' do
|
|
27
|
+
checker = VersionChecker.new('foo', '1.2.0', '1.0.0', '1.1')
|
|
28
|
+
Kernel.should_receive(:warn).with(/may not work with this version/)
|
|
29
|
+
checker.check_version!
|
|
30
|
+
end
|
|
31
|
+
|
|
32
|
+
it 'does not raise an error or print a warning when the major version is between the min and max' do
|
|
33
|
+
checker = VersionChecker.new('foo', '2.0.0', '1.0.0', '3.0')
|
|
34
|
+
Kernel.should_not_receive(:warn)
|
|
35
|
+
checker.check_version!
|
|
36
|
+
end
|
|
37
|
+
|
|
38
|
+
it 'does not raise an error or print a warning when the min_patch is 0.6.5, the max_minor is 0.7 and the version is 0.7.3' do
|
|
39
|
+
checker = VersionChecker.new('foo', '0.7.3', '0.6.5', '0.7')
|
|
40
|
+
Kernel.should_not_receive(:warn)
|
|
41
|
+
checker.check_version!
|
|
42
|
+
end
|
|
43
|
+
end
|
|
44
|
+
end
|
|
45
|
+
|
data/spec/vcr_spec.rb
CHANGED
|
@@ -41,6 +41,17 @@ describe VCR do
|
|
|
41
41
|
cassette1, cassette2 = insert_cassette(:foo1), insert_cassette(:foo2)
|
|
42
42
|
expect { VCR.eject_cassette }.to change(VCR, :current_cassette).from(cassette2).to(cassette1)
|
|
43
43
|
end
|
|
44
|
+
|
|
45
|
+
it 'keeps the cassette as the current one until after #eject has finished' do
|
|
46
|
+
cassette = insert_cassette
|
|
47
|
+
current = nil
|
|
48
|
+
cassette.stub(:eject) { current = VCR.current_cassette }
|
|
49
|
+
|
|
50
|
+
VCR.eject_cassette
|
|
51
|
+
|
|
52
|
+
current.should be(cassette)
|
|
53
|
+
VCR.current_cassette.should_not be(cassette)
|
|
54
|
+
end
|
|
44
55
|
end
|
|
45
56
|
|
|
46
57
|
describe '.use_cassette' do
|
data/vcr.gemspec
CHANGED
|
@@ -17,39 +17,35 @@ Gem::Specification.new do |s|
|
|
|
17
17
|
s.required_ruby_version = '>= 1.8.7'
|
|
18
18
|
s.required_rubygems_version = '>= 1.3.5'
|
|
19
19
|
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
20
|
+
s.add_development_dependency 'bundler', '~> 1.0.7'
|
|
21
|
+
s.add_development_dependency 'rake', '~> 0.9.2'
|
|
22
|
+
|
|
23
|
+
s.add_development_dependency 'cucumber', '~> 1.1.4'
|
|
24
|
+
s.add_development_dependency 'aruba', '~> 0.4.11'
|
|
25
|
+
|
|
26
|
+
s.add_development_dependency 'rspec', '~> 2.8.0'
|
|
27
|
+
s.add_development_dependency 'shoulda', '~> 2.9.2'
|
|
28
|
+
|
|
29
|
+
s.add_development_dependency 'fakeweb', '~> 1.3.0'
|
|
30
|
+
s.add_development_dependency 'webmock', '~> 1.8.0'
|
|
31
|
+
|
|
32
|
+
s.add_development_dependency 'faraday', '~> 0.7.2'
|
|
33
|
+
s.add_development_dependency 'httpclient', '~> 2.1.5.2'
|
|
34
|
+
s.add_development_dependency 'excon', '~> 0.9.6'
|
|
35
|
+
|
|
36
|
+
s.add_development_dependency 'timecop', '~> 0.3.5'
|
|
37
|
+
s.add_development_dependency 'rack', '~> 1.3.6'
|
|
38
|
+
s.add_development_dependency 'sinatra', '~> 1.3.2'
|
|
39
|
+
s.add_development_dependency 'multi_json', '~> 1.0.3'
|
|
40
|
+
s.add_development_dependency 'yajl-ruby', '~> 1.1.0'
|
|
41
|
+
s.add_development_dependency 'json', '~> 1.6.5'
|
|
42
|
+
s.add_development_dependency 'limited_red', '~> 0.3.7'
|
|
43
|
+
s.add_development_dependency 'simplecov', '~> 0.5.3'
|
|
44
|
+
|
|
45
|
+
unless RUBY_PLATFORM == 'java'
|
|
46
|
+
s.add_development_dependency 'patron', '~> 0.4.15'
|
|
47
|
+
s.add_development_dependency 'em-http-request', '~> 0.3.0'
|
|
48
|
+
s.add_development_dependency 'curb', '~> 0.8.0'
|
|
49
|
+
s.add_development_dependency 'typhoeus', '~> 0.3.3'
|
|
45
50
|
end
|
|
46
|
-
|
|
47
|
-
{
|
|
48
|
-
'patron' => '~> 0.4.15',
|
|
49
|
-
'em-http-request' => '~> 0.3.0',
|
|
50
|
-
'curb' => '0.7.15',
|
|
51
|
-
'typhoeus' => '~> 0.3.3'
|
|
52
|
-
}.each do |lib, version|
|
|
53
|
-
s.add_development_dependency lib, version
|
|
54
|
-
end unless RUBY_PLATFORM == 'java'
|
|
55
51
|
end
|
metadata
CHANGED
|
@@ -1,15 +1,15 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: vcr
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
hash:
|
|
4
|
+
hash: 15424081
|
|
5
5
|
prerelease: 6
|
|
6
6
|
segments:
|
|
7
7
|
- 2
|
|
8
8
|
- 0
|
|
9
9
|
- 0
|
|
10
10
|
- rc
|
|
11
|
-
-
|
|
12
|
-
version: 2.0.0.
|
|
11
|
+
- 2
|
|
12
|
+
version: 2.0.0.rc2
|
|
13
13
|
platform: ruby
|
|
14
14
|
authors:
|
|
15
15
|
- Myron Marston
|
|
@@ -17,7 +17,7 @@ autorequire:
|
|
|
17
17
|
bindir: bin
|
|
18
18
|
cert_chain: []
|
|
19
19
|
|
|
20
|
-
date:
|
|
20
|
+
date: 2012-02-24 00:00:00 Z
|
|
21
21
|
dependencies:
|
|
22
22
|
- !ruby/object:Gem::Dependency
|
|
23
23
|
version_requirements: &id001 !ruby/object:Gem::Requirement
|
|
@@ -25,13 +25,13 @@ dependencies:
|
|
|
25
25
|
requirements:
|
|
26
26
|
- - ~>
|
|
27
27
|
- !ruby/object:Gem::Version
|
|
28
|
-
hash:
|
|
28
|
+
hash: 25
|
|
29
29
|
segments:
|
|
30
|
+
- 1
|
|
30
31
|
- 0
|
|
31
32
|
- 7
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
name: faraday
|
|
33
|
+
version: 1.0.7
|
|
34
|
+
name: bundler
|
|
35
35
|
type: :development
|
|
36
36
|
prerelease: false
|
|
37
37
|
requirement: *id001
|
|
@@ -41,13 +41,13 @@ dependencies:
|
|
|
41
41
|
requirements:
|
|
42
42
|
- - ~>
|
|
43
43
|
- !ruby/object:Gem::Version
|
|
44
|
-
hash:
|
|
44
|
+
hash: 63
|
|
45
45
|
segments:
|
|
46
|
-
- 1
|
|
47
|
-
- 3
|
|
48
46
|
- 0
|
|
49
|
-
|
|
50
|
-
|
|
47
|
+
- 9
|
|
48
|
+
- 2
|
|
49
|
+
version: 0.9.2
|
|
50
|
+
name: rake
|
|
51
51
|
type: :development
|
|
52
52
|
prerelease: false
|
|
53
53
|
requirement: *id002
|
|
@@ -57,14 +57,13 @@ dependencies:
|
|
|
57
57
|
requirements:
|
|
58
58
|
- - ~>
|
|
59
59
|
- !ruby/object:Gem::Version
|
|
60
|
-
hash:
|
|
60
|
+
hash: 27
|
|
61
61
|
segments:
|
|
62
|
-
- 2
|
|
63
62
|
- 1
|
|
64
|
-
-
|
|
65
|
-
-
|
|
66
|
-
version:
|
|
67
|
-
name:
|
|
63
|
+
- 1
|
|
64
|
+
- 4
|
|
65
|
+
version: 1.1.4
|
|
66
|
+
name: cucumber
|
|
68
67
|
type: :development
|
|
69
68
|
prerelease: false
|
|
70
69
|
requirement: *id003
|
|
@@ -74,13 +73,13 @@ dependencies:
|
|
|
74
73
|
requirements:
|
|
75
74
|
- - ~>
|
|
76
75
|
- !ruby/object:Gem::Version
|
|
77
|
-
hash:
|
|
76
|
+
hash: 25
|
|
78
77
|
segments:
|
|
79
78
|
- 0
|
|
80
|
-
-
|
|
81
|
-
-
|
|
82
|
-
version: 0.
|
|
83
|
-
name:
|
|
79
|
+
- 4
|
|
80
|
+
- 11
|
|
81
|
+
version: 0.4.11
|
|
82
|
+
name: aruba
|
|
84
83
|
type: :development
|
|
85
84
|
prerelease: false
|
|
86
85
|
requirement: *id004
|
|
@@ -90,13 +89,13 @@ dependencies:
|
|
|
90
89
|
requirements:
|
|
91
90
|
- - ~>
|
|
92
91
|
- !ruby/object:Gem::Version
|
|
93
|
-
hash:
|
|
92
|
+
hash: 47
|
|
94
93
|
segments:
|
|
94
|
+
- 2
|
|
95
|
+
- 8
|
|
95
96
|
- 0
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
version: 0.3.5
|
|
99
|
-
name: timecop
|
|
97
|
+
version: 2.8.0
|
|
98
|
+
name: rspec
|
|
100
99
|
type: :development
|
|
101
100
|
prerelease: false
|
|
102
101
|
requirement: *id005
|
|
@@ -106,13 +105,13 @@ dependencies:
|
|
|
106
105
|
requirements:
|
|
107
106
|
- - ~>
|
|
108
107
|
- !ruby/object:Gem::Version
|
|
109
|
-
hash:
|
|
108
|
+
hash: 47
|
|
110
109
|
segments:
|
|
111
110
|
- 2
|
|
111
|
+
- 9
|
|
112
112
|
- 2
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
name: addressable
|
|
113
|
+
version: 2.9.2
|
|
114
|
+
name: shoulda
|
|
116
115
|
type: :development
|
|
117
116
|
prerelease: false
|
|
118
117
|
requirement: *id006
|
|
@@ -122,13 +121,13 @@ dependencies:
|
|
|
122
121
|
requirements:
|
|
123
122
|
- - ~>
|
|
124
123
|
- !ruby/object:Gem::Version
|
|
125
|
-
hash:
|
|
124
|
+
hash: 27
|
|
126
125
|
segments:
|
|
127
|
-
-
|
|
128
|
-
-
|
|
129
|
-
-
|
|
130
|
-
version:
|
|
131
|
-
name:
|
|
126
|
+
- 1
|
|
127
|
+
- 3
|
|
128
|
+
- 0
|
|
129
|
+
version: 1.3.0
|
|
130
|
+
name: fakeweb
|
|
132
131
|
type: :development
|
|
133
132
|
prerelease: false
|
|
134
133
|
requirement: *id007
|
|
@@ -138,15 +137,13 @@ dependencies:
|
|
|
138
137
|
requirements:
|
|
139
138
|
- - ~>
|
|
140
139
|
- !ruby/object:Gem::Version
|
|
141
|
-
hash:
|
|
140
|
+
hash: 55
|
|
142
141
|
segments:
|
|
143
|
-
-
|
|
142
|
+
- 1
|
|
144
143
|
- 8
|
|
145
144
|
- 0
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
version: 2.8.0.rc1
|
|
149
|
-
name: rspec
|
|
145
|
+
version: 1.8.0
|
|
146
|
+
name: webmock
|
|
150
147
|
type: :development
|
|
151
148
|
prerelease: false
|
|
152
149
|
requirement: *id008
|
|
@@ -156,13 +153,13 @@ dependencies:
|
|
|
156
153
|
requirements:
|
|
157
154
|
- - ~>
|
|
158
155
|
- !ruby/object:Gem::Version
|
|
159
|
-
hash:
|
|
156
|
+
hash: 7
|
|
160
157
|
segments:
|
|
161
|
-
- 1
|
|
162
158
|
- 0
|
|
163
|
-
-
|
|
164
|
-
|
|
165
|
-
|
|
159
|
+
- 7
|
|
160
|
+
- 2
|
|
161
|
+
version: 0.7.2
|
|
162
|
+
name: faraday
|
|
166
163
|
type: :development
|
|
167
164
|
prerelease: false
|
|
168
165
|
requirement: *id009
|
|
@@ -170,15 +167,16 @@ dependencies:
|
|
|
170
167
|
version_requirements: &id010 !ruby/object:Gem::Requirement
|
|
171
168
|
none: false
|
|
172
169
|
requirements:
|
|
173
|
-
- -
|
|
170
|
+
- - ~>
|
|
174
171
|
- !ruby/object:Gem::Version
|
|
175
|
-
hash:
|
|
172
|
+
hash: 119
|
|
176
173
|
segments:
|
|
174
|
+
- 2
|
|
177
175
|
- 1
|
|
178
|
-
-
|
|
179
|
-
-
|
|
180
|
-
version:
|
|
181
|
-
name:
|
|
176
|
+
- 5
|
|
177
|
+
- 2
|
|
178
|
+
version: 2.1.5.2
|
|
179
|
+
name: httpclient
|
|
182
180
|
type: :development
|
|
183
181
|
prerelease: false
|
|
184
182
|
requirement: *id010
|
|
@@ -188,13 +186,13 @@ dependencies:
|
|
|
188
186
|
requirements:
|
|
189
187
|
- - ~>
|
|
190
188
|
- !ruby/object:Gem::Version
|
|
191
|
-
hash:
|
|
189
|
+
hash: 55
|
|
192
190
|
segments:
|
|
193
191
|
- 0
|
|
194
|
-
-
|
|
192
|
+
- 9
|
|
195
193
|
- 6
|
|
196
|
-
version: 0.
|
|
197
|
-
name:
|
|
194
|
+
version: 0.9.6
|
|
195
|
+
name: excon
|
|
198
196
|
type: :development
|
|
199
197
|
prerelease: false
|
|
200
198
|
requirement: *id011
|
|
@@ -204,13 +202,13 @@ dependencies:
|
|
|
204
202
|
requirements:
|
|
205
203
|
- - ~>
|
|
206
204
|
- !ruby/object:Gem::Version
|
|
207
|
-
hash:
|
|
205
|
+
hash: 25
|
|
208
206
|
segments:
|
|
209
|
-
- 1
|
|
210
|
-
- 1
|
|
211
207
|
- 0
|
|
212
|
-
|
|
213
|
-
|
|
208
|
+
- 3
|
|
209
|
+
- 5
|
|
210
|
+
version: 0.3.5
|
|
211
|
+
name: timecop
|
|
214
212
|
type: :development
|
|
215
213
|
prerelease: false
|
|
216
214
|
requirement: *id012
|
|
@@ -220,13 +218,13 @@ dependencies:
|
|
|
220
218
|
requirements:
|
|
221
219
|
- - ~>
|
|
222
220
|
- !ruby/object:Gem::Version
|
|
223
|
-
hash:
|
|
221
|
+
hash: 23
|
|
224
222
|
segments:
|
|
225
223
|
- 1
|
|
226
|
-
-
|
|
227
|
-
-
|
|
228
|
-
version: 1.
|
|
229
|
-
name:
|
|
224
|
+
- 3
|
|
225
|
+
- 6
|
|
226
|
+
version: 1.3.6
|
|
227
|
+
name: rack
|
|
230
228
|
type: :development
|
|
231
229
|
prerelease: false
|
|
232
230
|
requirement: *id013
|
|
@@ -236,13 +234,13 @@ dependencies:
|
|
|
236
234
|
requirements:
|
|
237
235
|
- - ~>
|
|
238
236
|
- !ruby/object:Gem::Version
|
|
239
|
-
hash:
|
|
237
|
+
hash: 31
|
|
240
238
|
segments:
|
|
241
|
-
-
|
|
242
|
-
-
|
|
243
|
-
-
|
|
244
|
-
version:
|
|
245
|
-
name:
|
|
239
|
+
- 1
|
|
240
|
+
- 3
|
|
241
|
+
- 2
|
|
242
|
+
version: 1.3.2
|
|
243
|
+
name: sinatra
|
|
246
244
|
type: :development
|
|
247
245
|
prerelease: false
|
|
248
246
|
requirement: *id014
|
|
@@ -258,7 +256,7 @@ dependencies:
|
|
|
258
256
|
- 0
|
|
259
257
|
- 3
|
|
260
258
|
version: 1.0.3
|
|
261
|
-
name:
|
|
259
|
+
name: multi_json
|
|
262
260
|
type: :development
|
|
263
261
|
prerelease: false
|
|
264
262
|
requirement: *id015
|
|
@@ -268,13 +266,13 @@ dependencies:
|
|
|
268
266
|
requirements:
|
|
269
267
|
- - ~>
|
|
270
268
|
- !ruby/object:Gem::Version
|
|
271
|
-
hash:
|
|
269
|
+
hash: 19
|
|
272
270
|
segments:
|
|
273
271
|
- 1
|
|
274
|
-
-
|
|
275
|
-
-
|
|
276
|
-
version: 1.
|
|
277
|
-
name:
|
|
272
|
+
- 1
|
|
273
|
+
- 0
|
|
274
|
+
version: 1.1.0
|
|
275
|
+
name: yajl-ruby
|
|
278
276
|
type: :development
|
|
279
277
|
prerelease: false
|
|
280
278
|
requirement: *id016
|
|
@@ -282,20 +280,52 @@ dependencies:
|
|
|
282
280
|
version_requirements: &id017 !ruby/object:Gem::Requirement
|
|
283
281
|
none: false
|
|
284
282
|
requirements:
|
|
285
|
-
- -
|
|
283
|
+
- - ~>
|
|
284
|
+
- !ruby/object:Gem::Version
|
|
285
|
+
hash: 5
|
|
286
|
+
segments:
|
|
287
|
+
- 1
|
|
288
|
+
- 6
|
|
289
|
+
- 5
|
|
290
|
+
version: 1.6.5
|
|
291
|
+
name: json
|
|
292
|
+
type: :development
|
|
293
|
+
prerelease: false
|
|
294
|
+
requirement: *id017
|
|
295
|
+
- !ruby/object:Gem::Dependency
|
|
296
|
+
version_requirements: &id018 !ruby/object:Gem::Requirement
|
|
297
|
+
none: false
|
|
298
|
+
requirements:
|
|
299
|
+
- - ~>
|
|
286
300
|
- !ruby/object:Gem::Version
|
|
287
301
|
hash: 29
|
|
288
302
|
segments:
|
|
289
303
|
- 0
|
|
304
|
+
- 3
|
|
290
305
|
- 7
|
|
291
|
-
|
|
292
|
-
|
|
293
|
-
name: curb
|
|
306
|
+
version: 0.3.7
|
|
307
|
+
name: limited_red
|
|
294
308
|
type: :development
|
|
295
309
|
prerelease: false
|
|
296
|
-
requirement: *
|
|
310
|
+
requirement: *id018
|
|
297
311
|
- !ruby/object:Gem::Dependency
|
|
298
|
-
version_requirements: &
|
|
312
|
+
version_requirements: &id019 !ruby/object:Gem::Requirement
|
|
313
|
+
none: false
|
|
314
|
+
requirements:
|
|
315
|
+
- - ~>
|
|
316
|
+
- !ruby/object:Gem::Version
|
|
317
|
+
hash: 13
|
|
318
|
+
segments:
|
|
319
|
+
- 0
|
|
320
|
+
- 5
|
|
321
|
+
- 3
|
|
322
|
+
version: 0.5.3
|
|
323
|
+
name: simplecov
|
|
324
|
+
type: :development
|
|
325
|
+
prerelease: false
|
|
326
|
+
requirement: *id019
|
|
327
|
+
- !ruby/object:Gem::Dependency
|
|
328
|
+
version_requirements: &id020 !ruby/object:Gem::Requirement
|
|
299
329
|
none: false
|
|
300
330
|
requirements:
|
|
301
331
|
- - ~>
|
|
@@ -309,9 +339,9 @@ dependencies:
|
|
|
309
339
|
name: patron
|
|
310
340
|
type: :development
|
|
311
341
|
prerelease: false
|
|
312
|
-
requirement: *
|
|
342
|
+
requirement: *id020
|
|
313
343
|
- !ruby/object:Gem::Dependency
|
|
314
|
-
version_requirements: &
|
|
344
|
+
version_requirements: &id021 !ruby/object:Gem::Requirement
|
|
315
345
|
none: false
|
|
316
346
|
requirements:
|
|
317
347
|
- - ~>
|
|
@@ -325,9 +355,25 @@ dependencies:
|
|
|
325
355
|
name: em-http-request
|
|
326
356
|
type: :development
|
|
327
357
|
prerelease: false
|
|
328
|
-
requirement: *
|
|
358
|
+
requirement: *id021
|
|
329
359
|
- !ruby/object:Gem::Dependency
|
|
330
|
-
version_requirements: &
|
|
360
|
+
version_requirements: &id022 !ruby/object:Gem::Requirement
|
|
361
|
+
none: false
|
|
362
|
+
requirements:
|
|
363
|
+
- - ~>
|
|
364
|
+
- !ruby/object:Gem::Version
|
|
365
|
+
hash: 63
|
|
366
|
+
segments:
|
|
367
|
+
- 0
|
|
368
|
+
- 8
|
|
369
|
+
- 0
|
|
370
|
+
version: 0.8.0
|
|
371
|
+
name: curb
|
|
372
|
+
type: :development
|
|
373
|
+
prerelease: false
|
|
374
|
+
requirement: *id022
|
|
375
|
+
- !ruby/object:Gem::Dependency
|
|
376
|
+
version_requirements: &id023 !ruby/object:Gem::Requirement
|
|
331
377
|
none: false
|
|
332
378
|
requirements:
|
|
333
379
|
- - ~>
|
|
@@ -341,7 +387,7 @@ dependencies:
|
|
|
341
387
|
name: typhoeus
|
|
342
388
|
type: :development
|
|
343
389
|
prerelease: false
|
|
344
|
-
requirement: *
|
|
390
|
+
requirement: *id023
|
|
345
391
|
description: VCR provides a simple API to record and replay your test suite's HTTP interactions. It works with a variety of HTTP client libraries, HTTP stubbing libraries and testing frameworks.
|
|
346
392
|
email: myron.marston@gmail.com
|
|
347
393
|
executables: []
|
|
@@ -355,8 +401,10 @@ files:
|
|
|
355
401
|
- .gemtest
|
|
356
402
|
- .gitignore
|
|
357
403
|
- .gitmodules
|
|
404
|
+
- .limited_red
|
|
358
405
|
- .rspec
|
|
359
406
|
- .travis.yml
|
|
407
|
+
- .yardopts
|
|
360
408
|
- CHANGELOG.md
|
|
361
409
|
- CONTRIBUTING.md
|
|
362
410
|
- Gemfile
|
|
@@ -378,10 +426,12 @@ files:
|
|
|
378
426
|
- features/cassettes/update_content_length_header.feature
|
|
379
427
|
- features/configuration/allow_http_connections_when_no_cassette.feature
|
|
380
428
|
- features/configuration/cassette_library_dir.feature
|
|
429
|
+
- features/configuration/debug_logging.feature
|
|
381
430
|
- features/configuration/default_cassette_options.feature
|
|
382
431
|
- features/configuration/filter_sensitive_data.feature
|
|
383
432
|
- features/configuration/hook_into.feature
|
|
384
433
|
- features/configuration/ignore_request.feature
|
|
434
|
+
- features/configuration/preserve_exact_body_bytes.feature
|
|
385
435
|
- features/getting_started.md
|
|
386
436
|
- features/hooks/after_http_request.feature
|
|
387
437
|
- features/hooks/around_http_request.feature
|
|
@@ -447,6 +497,7 @@ files:
|
|
|
447
497
|
- lib/vcr/test_frameworks/rspec.rb
|
|
448
498
|
- lib/vcr/util/hooks.rb
|
|
449
499
|
- lib/vcr/util/internet_connection.rb
|
|
500
|
+
- lib/vcr/util/logger.rb
|
|
450
501
|
- lib/vcr/util/variable_args_block_caller.rb
|
|
451
502
|
- lib/vcr/util/version_checker.rb
|
|
452
503
|
- lib/vcr/version.rb
|
|
@@ -467,7 +518,6 @@ files:
|
|
|
467
518
|
- spec/support/ruby_interpreter.rb
|
|
468
519
|
- spec/support/shared_example_groups/hook_into_http_library.rb
|
|
469
520
|
- spec/support/shared_example_groups/request_hooks.rb
|
|
470
|
-
- spec/support/shared_example_groups/version_checking.rb
|
|
471
521
|
- spec/support/sinatra_app.rb
|
|
472
522
|
- spec/support/vcr_localhost_server.rb
|
|
473
523
|
- spec/support/vcr_stub_helpers.rb
|
|
@@ -495,6 +545,7 @@ files:
|
|
|
495
545
|
- spec/vcr/test_frameworks/rspec_spec.rb
|
|
496
546
|
- spec/vcr/util/hooks_spec.rb
|
|
497
547
|
- spec/vcr/util/internet_connection_spec.rb
|
|
548
|
+
- spec/vcr/util/version_checker_spec.rb
|
|
498
549
|
- spec/vcr/version_spec.rb
|
|
499
550
|
- spec/vcr_spec.rb
|
|
500
551
|
- vcr.gemspec
|
|
@@ -546,10 +597,12 @@ test_files:
|
|
|
546
597
|
- features/cassettes/update_content_length_header.feature
|
|
547
598
|
- features/configuration/allow_http_connections_when_no_cassette.feature
|
|
548
599
|
- features/configuration/cassette_library_dir.feature
|
|
600
|
+
- features/configuration/debug_logging.feature
|
|
549
601
|
- features/configuration/default_cassette_options.feature
|
|
550
602
|
- features/configuration/filter_sensitive_data.feature
|
|
551
603
|
- features/configuration/hook_into.feature
|
|
552
604
|
- features/configuration/ignore_request.feature
|
|
605
|
+
- features/configuration/preserve_exact_body_bytes.feature
|
|
553
606
|
- features/getting_started.md
|
|
554
607
|
- features/hooks/after_http_request.feature
|
|
555
608
|
- features/hooks/around_http_request.feature
|
|
@@ -598,7 +651,6 @@ test_files:
|
|
|
598
651
|
- spec/support/ruby_interpreter.rb
|
|
599
652
|
- spec/support/shared_example_groups/hook_into_http_library.rb
|
|
600
653
|
- spec/support/shared_example_groups/request_hooks.rb
|
|
601
|
-
- spec/support/shared_example_groups/version_checking.rb
|
|
602
654
|
- spec/support/sinatra_app.rb
|
|
603
655
|
- spec/support/vcr_localhost_server.rb
|
|
604
656
|
- spec/support/vcr_stub_helpers.rb
|
|
@@ -626,5 +678,7 @@ test_files:
|
|
|
626
678
|
- spec/vcr/test_frameworks/rspec_spec.rb
|
|
627
679
|
- spec/vcr/util/hooks_spec.rb
|
|
628
680
|
- spec/vcr/util/internet_connection_spec.rb
|
|
681
|
+
- spec/vcr/util/version_checker_spec.rb
|
|
629
682
|
- spec/vcr/version_spec.rb
|
|
630
683
|
- spec/vcr_spec.rb
|
|
684
|
+
has_rdoc:
|