minitest_vcr 0.0.1

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 ADDED
@@ -0,0 +1,17 @@
1
+ *.gem
2
+ *.rbc
3
+ .bundle
4
+ .config
5
+ .yardoc
6
+ Gemfile.lock
7
+ InstalledFiles
8
+ _yardoc
9
+ coverage
10
+ doc/
11
+ lib/bundler/man
12
+ pkg
13
+ rdoc
14
+ spec/reports
15
+ test/tmp
16
+ test/version_tmp
17
+ tmp
data/Gemfile ADDED
@@ -0,0 +1,5 @@
1
+ source 'https://rubygems.org'
2
+
3
+ # Specify your gem's dependencies in minitest_vcr.gemspec
4
+ gemspec
5
+
data/LICENSE.txt ADDED
@@ -0,0 +1,22 @@
1
+ Copyright (c) 2014 Mike Piccolo
2
+
3
+ MIT License
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining
6
+ a copy of this software and associated documentation files (the
7
+ "Software"), to deal in the Software without restriction, including
8
+ without limitation the rights to use, copy, modify, merge, publish,
9
+ distribute, sublicense, and/or sell copies of the Software, and to
10
+ permit persons to whom the Software is furnished to do so, subject to
11
+ the following conditions:
12
+
13
+ The above copyright notice and this permission notice shall be
14
+ included in all copies or substantial portions of the Software.
15
+
16
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
17
+ EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
18
+ MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
19
+ NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
20
+ LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
21
+ OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
22
+ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
data/README.md ADDED
@@ -0,0 +1,50 @@
1
+ # minitest_vcr
2
+
3
+ * [Homepage](https://github.com/mfpiccolo/minitest_vcr#readme)
4
+ * [Issues](https://github.com/mfpiccolo/minitest_vcr/issues)
5
+ * [Documentation](http://rubydoc.info/gems/minitest_vcr/frames)
6
+ * [Email](mailto:don at mfpiccolo.net)
7
+
8
+ ## Description
9
+
10
+ Allows VCR to automatically make cassets with proper file paths using Minitest.
11
+
12
+ ## Features
13
+
14
+ ## Examples
15
+
16
+ require 'minitest_vcr'
17
+
18
+ ## Requirements
19
+
20
+
21
+ ## Installation
22
+
23
+ Add this line to your application's Gemfile:
24
+
25
+ ```ruby
26
+ gem "minitest_vcr"
27
+ ```
28
+
29
+ And then execute:
30
+
31
+ $ bundle
32
+
33
+ Or install it yourself as:
34
+
35
+ $ gem install minitest_vcr
36
+
37
+
38
+ ## Copyright
39
+
40
+ Copyright (c) 2013 Mike Piccolo
41
+
42
+ See [LICENSE.txt](LICENSE.txt) for details.
43
+
44
+ ## Contributing
45
+
46
+ 1. Fork it ( http://github.com/<my-github-username>/minitest_vcr/fork )
47
+ 2. Create your feature branch (`git checkout -b my-new-feature`)
48
+ 3. Commit your changes (`git commit -am 'Add some feature'`)
49
+ 4. Push to the branch (`git push origin my-new-feature`)
50
+ 5. Create new Pull Request
data/Rakefile ADDED
@@ -0,0 +1,36 @@
1
+ # encoding: utf-8
2
+
3
+ require 'rubygems'
4
+
5
+ begin
6
+ require 'bundler'
7
+ rescue LoadError => e
8
+ warn e.message
9
+ warn "Run `gem install bundler` to install Bundler."
10
+ exit -1
11
+ end
12
+
13
+ begin
14
+ Bundler.setup(:development)
15
+ rescue Bundler::BundlerError => e
16
+ warn e.message
17
+ warn "Run `bundle install` to install missing gems."
18
+ exit e.status_code
19
+ end
20
+
21
+ require 'rake'
22
+
23
+ require 'rubygems/tasks'
24
+ Gem::Tasks.new
25
+
26
+ require 'rake/testtask'
27
+
28
+ Rake::TestTask.new do |test|
29
+ test.libs << 'test'
30
+ test.pattern = 'test/**/*_test.rb'
31
+ test.verbose = true
32
+ end
33
+
34
+ require 'yard'
35
+ YARD::Rake::YardocTask.new
36
+ task :doc => :yard
@@ -0,0 +1,9 @@
1
+ require "minitest_vcr/version"
2
+ require "minitest_vcr/spec"
3
+
4
+ module MinitestVcr
5
+ def self.included(base)
6
+ base.send(:include, MinitestVcr::Spec)
7
+ super
8
+ end
9
+ end
@@ -0,0 +1,25 @@
1
+ require "vcr"
2
+ require "minispec-metadata"
3
+
4
+ module MinitestVcr
5
+ module Spec
6
+ def self.configure!
7
+ run_before = lambda do |example|
8
+ if metadata[:vcr]
9
+ test_info = example.class.name.split("::::").map {|e| e.sub(/[^\w]*$/, "")}.reject(&:empty?)
10
+ VCR.insert_cassette test_info.join("/") + "/#{spec_name}"
11
+ end
12
+ end
13
+
14
+ run_after = lambda do |example|
15
+ if metadata[:vcr]
16
+ ::VCR.eject_cassette
17
+ end
18
+ end
19
+
20
+ ::MiniTest::Spec.before :each, &run_before
21
+
22
+ ::MiniTest::Spec.after :each, &run_after
23
+ end
24
+ end # Callable
25
+ end # SoftService
@@ -0,0 +1,3 @@
1
+ module MinitestVcr
2
+ VERSION = "0.0.1"
3
+ end
@@ -0,0 +1,37 @@
1
+ # coding: utf-8
2
+ lib = File.expand_path('../lib', __FILE__)
3
+ $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
4
+ require 'minitest_vcr/version'
5
+
6
+ Gem::Specification.new do |spec|
7
+ spec.name = "minitest_vcr"
8
+ spec.version = MinitestVcr::VERSION
9
+ spec.authors = ["Mike Piccolo"]
10
+ spec.email = ["mpiccolo@newleaders.com"]
11
+ spec.summary = "Allows VCR to automatically make cassetes with proper file paths with MiniTest"
12
+ spec.description = "I like MiniTest. I like VCR. I like not having to manage cassetes."
13
+ spec.homepage = ""
14
+ spec.license = "MIT"
15
+
16
+ spec.files = `git ls-files`.split($/)
17
+ spec.executables = spec.files.grep(%r{^bin/}) { |f| File.basename(f) }
18
+ spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
19
+ spec.require_paths = ["lib"]
20
+
21
+ spec.add_runtime_dependency 'vcr', '~> 2.8.0'
22
+ spec.add_runtime_dependency 'minitest', '~> 4.7.5'
23
+ spec.add_runtime_dependency 'minispec-metadata', '~> 1.0.0'
24
+
25
+ spec.add_development_dependency "bundler", "~> 1.5"
26
+ spec.add_development_dependency 'rake', '~> 10.0'
27
+ spec.add_development_dependency 'vcr', '~> 2.8.0'
28
+ spec.add_development_dependency 'minitest', '~> 4.7.5'
29
+ spec.add_development_dependency 'minispec-metadata', '~> 1.0.0'
30
+ spec.add_development_dependency 'mocha', '~> 0.14.0'
31
+ spec.add_development_dependency 'faraday', '~> 0.8.9'
32
+ spec.add_development_dependency 'rubygems-tasks', '~> 0.2'
33
+ spec.add_development_dependency 'yard', '~> 0.8'
34
+ spec.add_development_dependency 'webmock', '~> 1.16.0'
35
+ spec.add_development_dependency 'pry', ' ~> 0.9.12.2'
36
+ spec.add_development_dependency 'pry-debugger', '~> 0.2.2'
37
+ end
@@ -0,0 +1,64 @@
1
+ ---
2
+ http_interactions:
3
+ - request:
4
+ method: get
5
+ uri: http://example.com/
6
+ body:
7
+ encoding: US-ASCII
8
+ string: ''
9
+ headers:
10
+ User-Agent:
11
+ - Faraday v0.8.9
12
+ Accept-Encoding:
13
+ - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
14
+ Accept:
15
+ - ! '*/*'
16
+ response:
17
+ status:
18
+ code: 200
19
+ message: OK
20
+ headers:
21
+ Accept-Ranges:
22
+ - bytes
23
+ Cache-Control:
24
+ - max-age=604800
25
+ Content-Type:
26
+ - text/html
27
+ Date:
28
+ - Sun, 12 Jan 2014 18:02:58 GMT
29
+ Etag:
30
+ - ! '"359670651"'
31
+ Expires:
32
+ - Sun, 19 Jan 2014 18:02:58 GMT
33
+ Last-Modified:
34
+ - Fri, 09 Aug 2013 23:54:35 GMT
35
+ Server:
36
+ - ECS (sjc/4FB4)
37
+ X-Cache:
38
+ - HIT
39
+ X-Ec-Custom-Error:
40
+ - '1'
41
+ Content-Length:
42
+ - '1270'
43
+ body:
44
+ encoding: US-ASCII
45
+ string: ! "<!doctype html>\n<html>\n<head>\n <title>Example Domain</title>\n\n
46
+ \ <meta charset=\"utf-8\" />\n <meta http-equiv=\"Content-type\" content=\"text/html;
47
+ charset=utf-8\" />\n <meta name=\"viewport\" content=\"width=device-width,
48
+ initial-scale=1\" />\n <style type=\"text/css\">\n body {\n background-color:
49
+ #f0f0f2;\n margin: 0;\n padding: 0;\n font-family: \"Open
50
+ Sans\", \"Helvetica Neue\", Helvetica, Arial, sans-serif;\n \n }\n
51
+ \ div {\n width: 600px;\n margin: 5em auto;\n padding:
52
+ 50px;\n background-color: #fff;\n border-radius: 1em;\n }\n
53
+ \ a:link, a:visited {\n color: #38488f;\n text-decoration:
54
+ none;\n }\n @media (max-width: 700px) {\n body {\n background-color:
55
+ #fff;\n }\n div {\n width: auto;\n margin:
56
+ 0 auto;\n border-radius: 0;\n padding: 1em;\n }\n
57
+ \ }\n </style> \n</head>\n\n<body>\n<div>\n <h1>Example Domain</h1>\n
58
+ \ <p>This domain is established to be used for illustrative examples in
59
+ documents. You may use this\n domain in examples without prior coordination
60
+ or asking for permission.</p>\n <p><a href=\"http://www.iana.org/domains/example\">More
61
+ information...</a></p>\n</div>\n</body>\n</html>\n"
62
+ http_version:
63
+ recorded_at: Sun, 12 Jan 2014 18:02:59 GMT
64
+ recorded_with: VCR 2.8.0
data/test/helper.rb ADDED
@@ -0,0 +1,32 @@
1
+ require "rubygems"
2
+
3
+ begin
4
+ require "bundler"
5
+ rescue LoadError => e
6
+ STDERR.puts e.message
7
+ STDERR.puts "Run `gem install bundler` to install Bundler."
8
+ exit e.status_code
9
+ end
10
+
11
+ begin
12
+ Bundler.setup(:default, :development, :test)
13
+ rescue Bundler::BundlerError => e
14
+ STDERR.puts e.message
15
+ STDERR.puts "Run `bundle install` to install missing gems."
16
+ exit e.status_code
17
+ end
18
+
19
+ require "minitest/autorun"
20
+ require "minispec-metadata"
21
+ require "vcr"
22
+ require "webmock"
23
+ require "mocha/setup"
24
+ require "minitest_vcr"
25
+ require "faraday"
26
+ require "pry"
27
+ require "pry-debugger"
28
+
29
+ VCR.configure do |c|
30
+ c.cassette_library_dir = 'test/cassettes'
31
+ c.hook_into :webmock
32
+ end
@@ -0,0 +1,35 @@
1
+ require "helper"
2
+
3
+ MinitestVcr::Spec.configure!
4
+
5
+ describe MinitestVcr::Spec do
6
+
7
+ describe 'an example group', vcr: true do
8
+ describe 'with a nested example group' do
9
+ before do
10
+ conn = Faraday.new
11
+ @response = conn.get 'http://example.com'
12
+ end
13
+ it 'uses a cassette for any examples' do
14
+ (VCR.current_cassette.name.split('/')).must_equal([
15
+ 'MinitestVcr::Spec',
16
+ 'an example group',
17
+ 'with a nested example group',
18
+ 'uses a cassette for any examples'
19
+ ])
20
+ end
21
+ end
22
+ end
23
+
24
+ describe "#configure!", vcr: true do
25
+
26
+ before do
27
+ ::MiniTest::Spec.expects(:before).with(:each).returns(:true)
28
+ ::MiniTest::Spec.expects(:after).with(:each).returns(true)
29
+ end
30
+
31
+ it "recieves should call before and after with proper args and block" do
32
+ MinitestVcr::Spec.configure!
33
+ end
34
+ end
35
+ end
metadata ADDED
@@ -0,0 +1,302 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: minitest_vcr
3
+ version: !ruby/object:Gem::Version
4
+ prerelease:
5
+ version: 0.0.1
6
+ platform: ruby
7
+ authors:
8
+ - Mike Piccolo
9
+ autorequire:
10
+ bindir: bin
11
+ cert_chain: []
12
+ date: 2014-01-12 00:00:00.000000000 Z
13
+ dependencies:
14
+ - !ruby/object:Gem::Dependency
15
+ name: vcr
16
+ version_requirements: !ruby/object:Gem::Requirement
17
+ none: false
18
+ requirements:
19
+ - - ~>
20
+ - !ruby/object:Gem::Version
21
+ version: 2.8.0
22
+ requirement: !ruby/object:Gem::Requirement
23
+ none: false
24
+ requirements:
25
+ - - ~>
26
+ - !ruby/object:Gem::Version
27
+ version: 2.8.0
28
+ type: :runtime
29
+ prerelease: false
30
+ - !ruby/object:Gem::Dependency
31
+ name: minitest
32
+ version_requirements: !ruby/object:Gem::Requirement
33
+ none: false
34
+ requirements:
35
+ - - ~>
36
+ - !ruby/object:Gem::Version
37
+ version: 4.7.5
38
+ requirement: !ruby/object:Gem::Requirement
39
+ none: false
40
+ requirements:
41
+ - - ~>
42
+ - !ruby/object:Gem::Version
43
+ version: 4.7.5
44
+ type: :runtime
45
+ prerelease: false
46
+ - !ruby/object:Gem::Dependency
47
+ name: minispec-metadata
48
+ version_requirements: !ruby/object:Gem::Requirement
49
+ none: false
50
+ requirements:
51
+ - - ~>
52
+ - !ruby/object:Gem::Version
53
+ version: 1.0.0
54
+ requirement: !ruby/object:Gem::Requirement
55
+ none: false
56
+ requirements:
57
+ - - ~>
58
+ - !ruby/object:Gem::Version
59
+ version: 1.0.0
60
+ type: :runtime
61
+ prerelease: false
62
+ - !ruby/object:Gem::Dependency
63
+ name: bundler
64
+ version_requirements: !ruby/object:Gem::Requirement
65
+ none: false
66
+ requirements:
67
+ - - ~>
68
+ - !ruby/object:Gem::Version
69
+ version: '1.5'
70
+ requirement: !ruby/object:Gem::Requirement
71
+ none: false
72
+ requirements:
73
+ - - ~>
74
+ - !ruby/object:Gem::Version
75
+ version: '1.5'
76
+ type: :development
77
+ prerelease: false
78
+ - !ruby/object:Gem::Dependency
79
+ name: rake
80
+ version_requirements: !ruby/object:Gem::Requirement
81
+ none: false
82
+ requirements:
83
+ - - ~>
84
+ - !ruby/object:Gem::Version
85
+ version: '10.0'
86
+ requirement: !ruby/object:Gem::Requirement
87
+ none: false
88
+ requirements:
89
+ - - ~>
90
+ - !ruby/object:Gem::Version
91
+ version: '10.0'
92
+ type: :development
93
+ prerelease: false
94
+ - !ruby/object:Gem::Dependency
95
+ name: vcr
96
+ version_requirements: !ruby/object:Gem::Requirement
97
+ none: false
98
+ requirements:
99
+ - - ~>
100
+ - !ruby/object:Gem::Version
101
+ version: 2.8.0
102
+ requirement: !ruby/object:Gem::Requirement
103
+ none: false
104
+ requirements:
105
+ - - ~>
106
+ - !ruby/object:Gem::Version
107
+ version: 2.8.0
108
+ type: :development
109
+ prerelease: false
110
+ - !ruby/object:Gem::Dependency
111
+ name: minitest
112
+ version_requirements: !ruby/object:Gem::Requirement
113
+ none: false
114
+ requirements:
115
+ - - ~>
116
+ - !ruby/object:Gem::Version
117
+ version: 4.7.5
118
+ requirement: !ruby/object:Gem::Requirement
119
+ none: false
120
+ requirements:
121
+ - - ~>
122
+ - !ruby/object:Gem::Version
123
+ version: 4.7.5
124
+ type: :development
125
+ prerelease: false
126
+ - !ruby/object:Gem::Dependency
127
+ name: minispec-metadata
128
+ version_requirements: !ruby/object:Gem::Requirement
129
+ none: false
130
+ requirements:
131
+ - - ~>
132
+ - !ruby/object:Gem::Version
133
+ version: 1.0.0
134
+ requirement: !ruby/object:Gem::Requirement
135
+ none: false
136
+ requirements:
137
+ - - ~>
138
+ - !ruby/object:Gem::Version
139
+ version: 1.0.0
140
+ type: :development
141
+ prerelease: false
142
+ - !ruby/object:Gem::Dependency
143
+ name: mocha
144
+ version_requirements: !ruby/object:Gem::Requirement
145
+ none: false
146
+ requirements:
147
+ - - ~>
148
+ - !ruby/object:Gem::Version
149
+ version: 0.14.0
150
+ requirement: !ruby/object:Gem::Requirement
151
+ none: false
152
+ requirements:
153
+ - - ~>
154
+ - !ruby/object:Gem::Version
155
+ version: 0.14.0
156
+ type: :development
157
+ prerelease: false
158
+ - !ruby/object:Gem::Dependency
159
+ name: faraday
160
+ version_requirements: !ruby/object:Gem::Requirement
161
+ none: false
162
+ requirements:
163
+ - - ~>
164
+ - !ruby/object:Gem::Version
165
+ version: 0.8.9
166
+ requirement: !ruby/object:Gem::Requirement
167
+ none: false
168
+ requirements:
169
+ - - ~>
170
+ - !ruby/object:Gem::Version
171
+ version: 0.8.9
172
+ type: :development
173
+ prerelease: false
174
+ - !ruby/object:Gem::Dependency
175
+ name: rubygems-tasks
176
+ version_requirements: !ruby/object:Gem::Requirement
177
+ none: false
178
+ requirements:
179
+ - - ~>
180
+ - !ruby/object:Gem::Version
181
+ version: '0.2'
182
+ requirement: !ruby/object:Gem::Requirement
183
+ none: false
184
+ requirements:
185
+ - - ~>
186
+ - !ruby/object:Gem::Version
187
+ version: '0.2'
188
+ type: :development
189
+ prerelease: false
190
+ - !ruby/object:Gem::Dependency
191
+ name: yard
192
+ version_requirements: !ruby/object:Gem::Requirement
193
+ none: false
194
+ requirements:
195
+ - - ~>
196
+ - !ruby/object:Gem::Version
197
+ version: '0.8'
198
+ requirement: !ruby/object:Gem::Requirement
199
+ none: false
200
+ requirements:
201
+ - - ~>
202
+ - !ruby/object:Gem::Version
203
+ version: '0.8'
204
+ type: :development
205
+ prerelease: false
206
+ - !ruby/object:Gem::Dependency
207
+ name: webmock
208
+ version_requirements: !ruby/object:Gem::Requirement
209
+ none: false
210
+ requirements:
211
+ - - ~>
212
+ - !ruby/object:Gem::Version
213
+ version: 1.16.0
214
+ requirement: !ruby/object:Gem::Requirement
215
+ none: false
216
+ requirements:
217
+ - - ~>
218
+ - !ruby/object:Gem::Version
219
+ version: 1.16.0
220
+ type: :development
221
+ prerelease: false
222
+ - !ruby/object:Gem::Dependency
223
+ name: pry
224
+ version_requirements: !ruby/object:Gem::Requirement
225
+ none: false
226
+ requirements:
227
+ - - ~>
228
+ - !ruby/object:Gem::Version
229
+ version: 0.9.12.2
230
+ requirement: !ruby/object:Gem::Requirement
231
+ none: false
232
+ requirements:
233
+ - - ~>
234
+ - !ruby/object:Gem::Version
235
+ version: 0.9.12.2
236
+ type: :development
237
+ prerelease: false
238
+ - !ruby/object:Gem::Dependency
239
+ name: pry-debugger
240
+ version_requirements: !ruby/object:Gem::Requirement
241
+ none: false
242
+ requirements:
243
+ - - ~>
244
+ - !ruby/object:Gem::Version
245
+ version: 0.2.2
246
+ requirement: !ruby/object:Gem::Requirement
247
+ none: false
248
+ requirements:
249
+ - - ~>
250
+ - !ruby/object:Gem::Version
251
+ version: 0.2.2
252
+ type: :development
253
+ prerelease: false
254
+ description: I like MiniTest. I like VCR. I like not having to manage cassetes.
255
+ email:
256
+ - mpiccolo@newleaders.com
257
+ executables: []
258
+ extensions: []
259
+ extra_rdoc_files: []
260
+ files:
261
+ - .gitignore
262
+ - Gemfile
263
+ - LICENSE.txt
264
+ - README.md
265
+ - Rakefile
266
+ - lib/minitest_vcr.rb
267
+ - lib/minitest_vcr/spec.rb
268
+ - lib/minitest_vcr/version.rb
269
+ - minitest_vcr.gemspec
270
+ - test/cassettes/MinitestVcr_Spec/an_example_group/with_a_nested_example_group/uses_a_cassette_for_any_examples.yml
271
+ - test/helper.rb
272
+ - test/minitest_vcr/spec_test.rb
273
+ homepage: ''
274
+ licenses:
275
+ - MIT
276
+ post_install_message:
277
+ rdoc_options: []
278
+ require_paths:
279
+ - lib
280
+ required_ruby_version: !ruby/object:Gem::Requirement
281
+ none: false
282
+ requirements:
283
+ - - ! '>='
284
+ - !ruby/object:Gem::Version
285
+ version: '0'
286
+ required_rubygems_version: !ruby/object:Gem::Requirement
287
+ none: false
288
+ requirements:
289
+ - - ! '>='
290
+ - !ruby/object:Gem::Version
291
+ version: '0'
292
+ requirements: []
293
+ rubyforge_project:
294
+ rubygems_version: 1.8.25
295
+ signing_key:
296
+ specification_version: 3
297
+ summary: Allows VCR to automatically make cassetes with proper file paths with MiniTest
298
+ test_files:
299
+ - test/cassettes/MinitestVcr_Spec/an_example_group/with_a_nested_example_group/uses_a_cassette_for_any_examples.yml
300
+ - test/helper.rb
301
+ - test/minitest_vcr/spec_test.rb
302
+ has_rdoc: