tcr 0.1.0 → 0.1.1

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 370d8b4720c47b31f8f3241356eb3b973c47670e
4
- data.tar.gz: 3c186c24296a576017891360fe0f87c7e77574f1
3
+ metadata.gz: 9eb63ae66e63fd83d042f819294f1490e4194e52
4
+ data.tar.gz: b63f2673ed97cb1e59a245c9fa6931abf8abd06a
5
5
  SHA512:
6
- metadata.gz: 1d27e46c2ccf0a2ffe523ff71cf462a66d11605688d9dd2ebe902dbe8a42b224cda2e06c553f8b3ac85a3ddcfb4a203318d4400fb9d87ffded52e35f6e927408
7
- data.tar.gz: 25b55961826513bb19715b71c62dc1e8cf4a20d3062f9a113d70d779642a9110e32c6f52268ce7b03a9046c8c6ea179958174b27dbdba2d987dfeff57e379e56
6
+ metadata.gz: 6a672d5b5d03361c7cbbd491814b313905fee72905ccee3ee7a811210ada82d7ae92bdb3f66951c5417db4fca9553b0bc237f69401b76e4272c22462cfdc22e9
7
+ data.tar.gz: 8bb20e98750081a6faa8fb275181dff36c073dcf4253c42a41cc8a9a4f61c0f6f10330e32a507ba81301fc85285c037258b512a92a2c28d1b99bdd13f6479ee0
data/.travis.yml CHANGED
@@ -4,5 +4,7 @@ rvm:
4
4
  - "2.0.0"
5
5
  - "2.1.2"
6
6
  - "2.2.2"
7
- - "2.3.0"
7
+ - "2.3.1"
8
+ before_install:
9
+ - gem install bundler
8
10
  script: bundle exec rspec
data/lib/tcr.rb CHANGED
@@ -42,6 +42,7 @@ module TCR
42
42
  TCR.cassette = Cassette.new(name)
43
43
  yield
44
44
  TCR.cassette.save
45
+ ensure
45
46
  TCR.cassette = nil
46
47
  end
47
48
 
@@ -81,3 +82,17 @@ class OpenSSL::SSL::SSLSocket
81
82
  end
82
83
  end
83
84
  end
85
+
86
+ class Socket
87
+ class << self
88
+ alias_method :real_tcp, :tcp
89
+
90
+ def tcp(host, port, socket_opts)
91
+ if TCR.configuration.hook_tcp_ports.include?(port)
92
+ TCR::RecordableTCPSocket.new(host, port, TCR.cassette)
93
+ else
94
+ real_tcp(host, port, socket_opts)
95
+ end
96
+ end
97
+ end
98
+ end
@@ -30,8 +30,8 @@ module TCR
30
30
  _read(:gets, *args)
31
31
  end
32
32
 
33
- def read_nonblock(bytes)
34
- _read(:read_nonblock, bytes, blocking: false)
33
+ def read_nonblock(*args)
34
+ _read(:read_nonblock, *args, blocking: false)
35
35
  end
36
36
 
37
37
  def print(str)
@@ -162,6 +162,10 @@ module TCR
162
162
  end
163
163
  end
164
164
 
165
+ def connect_nonblock(*)
166
+ self
167
+ end
168
+
165
169
  def connect
166
170
  self
167
171
  end
data/lib/tcr/version.rb CHANGED
@@ -1,3 +1,3 @@
1
1
  module TCR
2
- VERSION = "0.1.0"
2
+ VERSION = "0.1.1"
3
3
  end
data/spec/tcr_spec.rb CHANGED
@@ -141,6 +141,14 @@ describe TCR do
141
141
  expect(TCR.cassette).to be_nil
142
142
  end
143
143
 
144
+ it "resets the cassette after an error" do
145
+ expect(TCR.cassette).to be_nil
146
+ expect {
147
+ TCR.use_cassette("test") { raise "Whoops!" }
148
+ }.to raise_error("Whoops!")
149
+ expect(TCR.cassette).to be_nil
150
+ end
151
+
144
152
  it "creates a cassette file on use" do
145
153
  expect {
146
154
  TCR.use_cassette("test") do
@@ -300,4 +308,16 @@ describe TCR do
300
308
  end
301
309
  end
302
310
  end
311
+
312
+ it "replaces sockets created with Socket.tcp" do
313
+ TCR.configure { |c|
314
+ c.hook_tcp_ports = [23]
315
+ c.cassette_library_dir = "."
316
+ }
317
+
318
+ TCR.use_cassette("test") do
319
+ sock = Socket.tcp("towel.blinkenlights.nl", 23, {})
320
+ expect(sock).to be_a(TCR::RecordableTCPSocket)
321
+ end
322
+ end
303
323
  end
data/tcr.gemspec CHANGED
@@ -19,5 +19,6 @@ Gem::Specification.new do |gem|
19
19
 
20
20
  gem.add_development_dependency "rspec"
21
21
  gem.add_development_dependency "mail"
22
+ gem.add_development_dependency "mime-types", "~>2.0"
22
23
  gem.add_development_dependency "geminabox"
23
24
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: tcr
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.0
4
+ version: 0.1.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Rob Forman
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2016-03-02 00:00:00.000000000 Z
11
+ date: 2017-02-02 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rspec
@@ -38,6 +38,20 @@ dependencies:
38
38
  - - ">="
39
39
  - !ruby/object:Gem::Version
40
40
  version: '0'
41
+ - !ruby/object:Gem::Dependency
42
+ name: mime-types
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - "~>"
46
+ - !ruby/object:Gem::Version
47
+ version: '2.0'
48
+ type: :development
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - "~>"
53
+ - !ruby/object:Gem::Version
54
+ version: '2.0'
41
55
  - !ruby/object:Gem::Dependency
42
56
  name: geminabox
43
57
  requirement: !ruby/object:Gem::Requirement