vcr 2.0.0.rc1 → 2.0.0.rc2

Sign up to get free protection for your applications and to get access to all the features.
Files changed (113) hide show
  1. data/.gitignore +2 -0
  2. data/.limited_red +1 -0
  3. data/.travis.yml +10 -1
  4. data/.yardopts +9 -0
  5. data/CHANGELOG.md +51 -1
  6. data/Gemfile +5 -1
  7. data/LICENSE +1 -1
  8. data/README.md +23 -28
  9. data/Rakefile +63 -18
  10. data/Upgrade.md +200 -0
  11. data/features/.nav +2 -0
  12. data/features/cassettes/automatic_re_recording.feature +19 -15
  13. data/features/cassettes/dynamic_erb.feature +12 -4
  14. data/features/cassettes/exclusive.feature +31 -23
  15. data/features/cassettes/format.feature +54 -30
  16. data/features/cassettes/naming.feature +1 -1
  17. data/features/cassettes/update_content_length_header.feature +16 -12
  18. data/features/configuration/allow_http_connections_when_no_cassette.feature +1 -1
  19. data/features/configuration/debug_logging.feature +52 -0
  20. data/features/configuration/filter_sensitive_data.feature +4 -4
  21. data/features/configuration/hook_into.feature +5 -2
  22. data/features/configuration/ignore_request.feature +5 -3
  23. data/features/configuration/preserve_exact_body_bytes.feature +103 -0
  24. data/features/hooks/after_http_request.feature +17 -4
  25. data/features/hooks/around_http_request.feature +2 -1
  26. data/features/hooks/before_http_request.feature +25 -8
  27. data/features/hooks/before_playback.feature +16 -12
  28. data/features/hooks/before_record.feature +2 -2
  29. data/features/http_libraries/em_http_request.feature +82 -58
  30. data/features/http_libraries/net_http.feature +6 -6
  31. data/features/middleware/faraday.feature +2 -1
  32. data/features/middleware/rack.feature +2 -2
  33. data/features/record_modes/all.feature +19 -15
  34. data/features/record_modes/new_episodes.feature +17 -13
  35. data/features/record_modes/none.feature +15 -11
  36. data/features/record_modes/once.feature +16 -12
  37. data/features/request_matching/body.feature +28 -20
  38. data/features/request_matching/custom_matcher.feature +28 -20
  39. data/features/request_matching/headers.feature +34 -26
  40. data/features/request_matching/host.feature +28 -20
  41. data/features/request_matching/identical_request_sequence.feature +28 -20
  42. data/features/request_matching/method.feature +28 -20
  43. data/features/request_matching/path.feature +28 -20
  44. data/features/request_matching/playback_repeats.feature +28 -20
  45. data/features/request_matching/uri.feature +28 -20
  46. data/features/request_matching/uri_without_param.feature +28 -20
  47. data/features/support/env.rb +7 -6
  48. data/features/support/vcr_cucumber_helpers.rb +1 -0
  49. data/features/test_frameworks/cucumber.feature +8 -8
  50. data/features/test_frameworks/rspec_macro.feature +4 -4
  51. data/features/test_frameworks/rspec_metadata.feature +6 -6
  52. data/features/test_frameworks/shoulda.feature +1 -1
  53. data/features/test_frameworks/test_unit.feature +1 -1
  54. data/lib/vcr.rb +156 -5
  55. data/lib/vcr/cassette.rb +80 -30
  56. data/lib/vcr/cassette/http_interaction_list.rb +33 -4
  57. data/lib/vcr/cassette/migrator.rb +2 -3
  58. data/lib/vcr/cassette/reader.rb +1 -0
  59. data/lib/vcr/cassette/serializers.rb +22 -0
  60. data/lib/vcr/cassette/serializers/json.rb +27 -2
  61. data/lib/vcr/cassette/serializers/psych.rb +26 -2
  62. data/lib/vcr/cassette/serializers/syck.rb +28 -2
  63. data/lib/vcr/cassette/serializers/yaml.rb +28 -2
  64. data/lib/vcr/configuration.rb +348 -10
  65. data/lib/vcr/deprecations.rb +8 -0
  66. data/lib/vcr/errors.rb +40 -0
  67. data/lib/vcr/extensions/net_http_response.rb +12 -11
  68. data/lib/vcr/library_hooks.rb +1 -0
  69. data/lib/vcr/library_hooks/excon.rb +24 -3
  70. data/lib/vcr/library_hooks/fakeweb.rb +32 -16
  71. data/lib/vcr/library_hooks/faraday.rb +3 -0
  72. data/lib/vcr/library_hooks/typhoeus.rb +40 -37
  73. data/lib/vcr/library_hooks/webmock.rb +54 -34
  74. data/lib/vcr/middleware/faraday.rb +13 -0
  75. data/lib/vcr/middleware/rack.rb +35 -0
  76. data/lib/vcr/request_handler.rb +60 -8
  77. data/lib/vcr/request_ignorer.rb +1 -0
  78. data/lib/vcr/request_matcher_registry.rb +28 -0
  79. data/lib/vcr/structs.rb +245 -38
  80. data/lib/vcr/test_frameworks/cucumber.rb +10 -0
  81. data/lib/vcr/test_frameworks/rspec.rb +26 -1
  82. data/lib/vcr/util/hooks.rb +29 -27
  83. data/lib/vcr/util/internet_connection.rb +2 -0
  84. data/lib/vcr/util/logger.rb +25 -0
  85. data/lib/vcr/util/variable_args_block_caller.rb +1 -0
  86. data/lib/vcr/util/version_checker.rb +1 -0
  87. data/lib/vcr/version.rb +8 -1
  88. data/spec/capture_warnings.rb +3 -3
  89. data/spec/monkey_patches.rb +28 -13
  90. data/spec/spec_helper.rb +17 -0
  91. data/spec/support/http_library_adapters.rb +7 -4
  92. data/spec/support/shared_example_groups/hook_into_http_library.rb +96 -32
  93. data/spec/support/shared_example_groups/request_hooks.rb +9 -8
  94. data/spec/support/sinatra_app.rb +3 -1
  95. data/spec/support/vcr_localhost_server.rb +1 -0
  96. data/spec/vcr/cassette/http_interaction_list_spec.rb +119 -54
  97. data/spec/vcr/cassette/migrator_spec.rb +19 -6
  98. data/spec/vcr/cassette/serializers_spec.rb +51 -6
  99. data/spec/vcr/cassette_spec.rb +44 -19
  100. data/spec/vcr/configuration_spec.rb +91 -6
  101. data/spec/vcr/library_hooks/excon_spec.rb +54 -16
  102. data/spec/vcr/library_hooks/fakeweb_spec.rb +12 -21
  103. data/spec/vcr/library_hooks/typhoeus_spec.rb +2 -29
  104. data/spec/vcr/library_hooks/webmock_spec.rb +4 -18
  105. data/spec/vcr/middleware/faraday_spec.rb +1 -16
  106. data/spec/vcr/structs_spec.rb +194 -61
  107. data/spec/vcr/test_frameworks/rspec_spec.rb +10 -0
  108. data/spec/vcr/util/hooks_spec.rb +104 -56
  109. data/spec/vcr/util/version_checker_spec.rb +45 -0
  110. data/spec/vcr_spec.rb +11 -0
  111. data/vcr.gemspec +30 -34
  112. metadata +149 -95
  113. 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
@@ -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(:before_foo)' do
26
- it 'maps the return value of each callback' do
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 'does not invoke :before_bar callbacks' do
42
- subject.before_bar { invocations << :bar_callback }
43
- subject.invoke_hook(:before_foo)
44
- invocations.should be_empty
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 tagged callbacks' do
48
- subject.before_foo(:blue) { invocations << :blue_callback }
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 'passes along the provided arguments to the callback' do
54
- subject.before_foo(&lambda { |a, b| invocations << [a, b] })
55
- subject.invoke_hook(:before_foo, :arg1, :arg2)
56
- invocations.flatten.should eq([:arg1, :arg2])
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 "#invoke_tagged_hook(:before_foo, tag)" do
73
- it 'invokes each of the :before_foo callbacks with a matching tag' do
74
- subject.before_foo(:green) { invocations << :callback_1 }
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 'does not invoke any callbacks with a different tag' do
91
- subject.before_foo(:blue) { invocations << :blue_callback }
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 'passes along the provided arguments to the callback' do
97
- subject.before_foo(:green, &lambda { |a, b| invocations << [a, b] })
98
- subject.invoke_tagged_hook(:before_foo, :green, :arg1, :arg2)
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
- 'bundler' => '~> 1.0.7',
22
- 'rake' => '~> 0.9.2',
23
-
24
- 'cucumber' => '~> 1.0.3',
25
- 'aruba' => '~> 0.4.6',
26
-
27
- 'rspec' => '~> 2.8.0.rc1',
28
- 'shoulda' => '~> 2.9.2',
29
-
30
- 'fakeweb' => '~> 1.3.0',
31
- 'webmock' => '~> 1.7.8',
32
- 'addressable' => '~> 2.2.6',
33
-
34
- 'faraday' => '~> 0.7.2',
35
- 'httpclient' => '~> 2.1.5.2',
36
- 'excon' => '~> 0.7.9',
37
-
38
- 'timecop' => '~> 0.3.5',
39
- 'rack' => '1.1.0',
40
- 'sinatra' => '~> 1.1.0',
41
-
42
- 'multi_json' => '~> 1.0.3'
43
- }.each do |lib, version|
44
- s.add_development_dependency lib, version
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: 15424087
4
+ hash: 15424081
5
5
  prerelease: 6
6
6
  segments:
7
7
  - 2
8
8
  - 0
9
9
  - 0
10
10
  - rc
11
- - 1
12
- version: 2.0.0.rc1
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: 2011-12-09 00:00:00 Z
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: 7
28
+ hash: 25
29
29
  segments:
30
+ - 1
30
31
  - 0
31
32
  - 7
32
- - 2
33
- version: 0.7.2
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: 27
44
+ hash: 63
45
45
  segments:
46
- - 1
47
- - 3
48
46
  - 0
49
- version: 1.3.0
50
- name: fakeweb
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: 119
60
+ hash: 27
61
61
  segments:
62
- - 2
63
62
  - 1
64
- - 5
65
- - 2
66
- version: 2.1.5.2
67
- name: httpclient
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: 63
76
+ hash: 25
78
77
  segments:
79
78
  - 0
80
- - 9
81
- - 2
82
- version: 0.9.2
83
- name: rake
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: 25
92
+ hash: 47
94
93
  segments:
94
+ - 2
95
+ - 8
95
96
  - 0
96
- - 3
97
- - 5
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: 11
108
+ hash: 47
110
109
  segments:
111
110
  - 2
111
+ - 9
112
112
  - 2
113
- - 6
114
- version: 2.2.6
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: 47
124
+ hash: 27
126
125
  segments:
127
- - 2
128
- - 9
129
- - 2
130
- version: 2.9.2
131
- name: shoulda
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: 15424215
140
+ hash: 55
142
141
  segments:
143
- - 2
142
+ - 1
144
143
  - 8
145
144
  - 0
146
- - rc
147
- - 1
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: 17
156
+ hash: 7
160
157
  segments:
161
- - 1
162
158
  - 0
163
- - 3
164
- version: 1.0.3
165
- name: multi_json
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: 19
172
+ hash: 119
176
173
  segments:
174
+ - 2
177
175
  - 1
178
- - 1
179
- - 0
180
- version: 1.1.0
181
- name: rack
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: 3
189
+ hash: 55
192
190
  segments:
193
191
  - 0
194
- - 4
192
+ - 9
195
193
  - 6
196
- version: 0.4.6
197
- name: aruba
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: 19
205
+ hash: 25
208
206
  segments:
209
- - 1
210
- - 1
211
207
  - 0
212
- version: 1.1.0
213
- name: sinatra
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: 25
221
+ hash: 23
224
222
  segments:
225
223
  - 1
226
- - 0
227
- - 7
228
- version: 1.0.7
229
- name: bundler
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: 17
237
+ hash: 31
240
238
  segments:
241
- - 0
242
- - 7
243
- - 9
244
- version: 0.7.9
245
- name: excon
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: cucumber
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: 27
269
+ hash: 19
272
270
  segments:
273
271
  - 1
274
- - 7
275
- - 8
276
- version: 1.7.8
277
- name: webmock
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
- - 15
292
- version: 0.7.15
293
- name: curb
306
+ version: 0.3.7
307
+ name: limited_red
294
308
  type: :development
295
309
  prerelease: false
296
- requirement: *id017
310
+ requirement: *id018
297
311
  - !ruby/object:Gem::Dependency
298
- version_requirements: &id018 !ruby/object:Gem::Requirement
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: *id018
342
+ requirement: *id020
313
343
  - !ruby/object:Gem::Dependency
314
- version_requirements: &id019 !ruby/object:Gem::Requirement
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: *id019
358
+ requirement: *id021
329
359
  - !ruby/object:Gem::Dependency
330
- version_requirements: &id020 !ruby/object:Gem::Requirement
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: *id020
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: