tcr 0.1.0 → 0.1.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.
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