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.
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: