async-rspec 1.16.0 → 1.17.0

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
  SHA256:
3
- metadata.gz: 99cc9f67cfd8ad26555a5805dc8aa76b58876272ea0aecd18c07434ee8304c18
4
- data.tar.gz: de573e462396eb1ccd28a45f7bd345bd2ecd0e8e6ea814ec300775b51d16280d
3
+ metadata.gz: 0f6cc93674d4bd3c16383ffe582023a6a36d32c5fdc03326286913b68f69fca2
4
+ data.tar.gz: bf577e3e9c92a9434e0693b5e6cbb44489b02b884a784f735f15097d9493ed51
5
5
  SHA512:
6
- metadata.gz: ef693569b536cbba80c35d7805de22cd2cda1046f125cb3516c432b6548587042269cc802989fb79d94aa032c96eb45c589fd275f1c891462fb71337affdcdf5
7
- data.tar.gz: fc6a89c0a9cecc214e140fb9a3b0887f6304f8612aeb1b6e771babda377d993fa56e6f2ef223fd02800123f24fd64005ceea500f0420df1fc29d7da039152d2a
6
+ metadata.gz: e4d9cef03364e8b623bb657d9f769e234ff82fbe6a7e65a30fa83c15bd4615912742dc16b769c0d3caace5712c8b8d1a0ecc872548f1021a9870e82f93099b84
7
+ data.tar.gz: 318e0ab4e06c9b5da6b72ed87f2b16a4393b47bb4605d74145162cf997e1f2be59d7bb8724e273387deeb342393c9cb31c0a1ce31beb00d5ded8b0575095a2ee
checksums.yaml.gz.sig ADDED
Binary file
@@ -1,22 +1,7 @@
1
- # Copyright, 2018, by Samuel G. D. Williams. <http://www.codeotaku.com>
2
- #
3
- # Permission is hereby granted, free of charge, to any person obtaining a copy
4
- # of this software and associated documentation files (the "Software"), to deal
5
- # in the Software without restriction, including without limitation the rights
6
- # to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
7
- # copies of the Software, and to permit persons to whom the Software is
8
- # furnished to do so, subject to the following conditions:
9
- #
10
- # The above copyright notice and this permission notice shall be included in
11
- # all copies or substantial portions of the Software.
12
- #
13
- # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
14
- # IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
15
- # FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
16
- # AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
17
- # LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
18
- # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
19
- # THE SOFTWARE.
1
+ # frozen_string_literal: true
2
+
3
+ # Released under the MIT License.
4
+ # Copyright, 2018, by Samuel Williams.
20
5
 
21
6
  require 'securerandom'
22
7
 
@@ -1,22 +1,7 @@
1
- # Copyright, 2017, by Samuel G. D. Williams. <http://www.codeotaku.com>
2
- #
3
- # Permission is hereby granted, free of charge, to any person obtaining a copy
4
- # of this software and associated documentation files (the "Software"), to deal
5
- # in the Software without restriction, including without limitation the rights
6
- # to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
7
- # copies of the Software, and to permit persons to whom the Software is
8
- # furnished to do so, subject to the following conditions:
9
- #
10
- # The above copyright notice and this permission notice shall be included in
11
- # all copies or substantial portions of the Software.
12
- #
13
- # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
14
- # IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
15
- # FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
16
- # AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
17
- # LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
18
- # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
19
- # THE SOFTWARE.
1
+ # frozen_string_literal: true
2
+
3
+ # Released under the MIT License.
4
+ # Copyright, 2017-2019, by Samuel Williams.
20
5
 
21
6
  require 'rspec/files'
22
7
 
@@ -1,22 +1,8 @@
1
- # Copyright, 2017, by Samuel G. D. Williams. <http://www.codeotaku.com>
2
- #
3
- # Permission is hereby granted, free of charge, to any person obtaining a copy
4
- # of this software and associated documentation files (the "Software"), to deal
5
- # in the Software without restriction, including without limitation the rights
6
- # to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
7
- # copies of the Software, and to permit persons to whom the Software is
8
- # furnished to do so, subject to the following conditions:
9
- #
10
- # The above copyright notice and this permission notice shall be included in
11
- # all copies or substantial portions of the Software.
12
- #
13
- # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
14
- # IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
15
- # FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
16
- # AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
17
- # LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
18
- # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
19
- # THE SOFTWARE.
1
+ # frozen_string_literal: true
2
+
3
+ # Released under the MIT License.
4
+ # Copyright, 2018-2019, by Samuel Williams.
5
+ # Copyright, 2018, by Janko Marohnić.
20
6
 
21
7
  require 'rspec/memory'
22
8
 
@@ -1,52 +1,16 @@
1
- # Copyright, 2017, by Samuel G. D. Williams. <http://www.codeotaku.com>
2
- #
3
- # Permission is hereby granted, free of charge, to any person obtaining a copy
4
- # of this software and associated documentation files (the "Software"), to deal
5
- # in the Software without restriction, including without limitation the rights
6
- # to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
7
- # copies of the Software, and to permit persons to whom the Software is
8
- # furnished to do so, subject to the following conditions:
9
- #
10
- # The above copyright notice and this permission notice shall be included in
11
- # all copies or substantial portions of the Software.
12
- #
13
- # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
14
- # IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
15
- # FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
16
- # AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
17
- # LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
18
- # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
19
- # THE SOFTWARE.
1
+ # frozen_string_literal: true
2
+
3
+ # Released under the MIT License.
4
+ # Copyright, 2017-2018, by Samuel Williams.
20
5
 
21
6
  module Async
22
7
  module RSpec
23
8
  module Profile
24
9
  end
25
10
 
26
- begin
27
- require 'ruby-prof'
28
-
29
- ::RSpec.shared_context Profile do
30
- around(:each) do |example|
31
- profile = RubyProf::Profile.new(merge_fibers: true)
32
-
33
- begin
34
- profile.start
35
-
36
- example.run
37
- ensure
38
- profile.stop
39
-
40
- printer = RubyProf::FlatPrinter.new(profile)
41
- printer.print(STDOUT)
42
- end
43
- end
44
- end
45
- rescue LoadError
46
- ::RSpec.shared_context Profile do
47
- before(:all) do
48
- warn "Profiling not enabled/supported."
49
- end
11
+ ::RSpec.shared_context Profile do
12
+ before(:all) do
13
+ warn "Profiling not enabled/supported."
50
14
  end
51
15
  end
52
16
  end
@@ -20,8 +20,10 @@
20
20
 
21
21
  require_relative 'leaks'
22
22
 
23
+ require 'kernel/sync'
23
24
  require 'kernel/async'
24
25
  require 'async/reactor'
26
+ require 'async/task'
25
27
 
26
28
  module Async
27
29
  module RSpec
@@ -32,13 +34,12 @@ module Async
32
34
 
33
35
  def run_in_reactor(reactor, duration = nil)
34
36
  result = nil
35
-
36
37
  timer_task = nil
37
38
 
38
39
  if duration
39
40
  timer_task = reactor.async do |task|
40
41
  # Wait for the timeout, at any point this task might be cancelled if the user code completes:
41
- task.annotate("timer task duration=#{duration}")
42
+ task.annotate("Timer task duration=#{duration}.")
42
43
  task.sleep(duration)
43
44
 
44
45
  # The timeout expired, so generate an error:
@@ -46,30 +47,28 @@ module Async
46
47
  reactor.print_hierarchy(buffer)
47
48
 
48
49
  # Raise an error so it is logged:
49
- raise TimeoutError, "run time exceeded duration #{duration}s:\r\n#{buffer.string}"
50
+ raise TimeoutError, "Run time exceeded duration #{duration}s:\n#{buffer.string}"
50
51
  end
51
52
  end
52
53
 
53
- reactor.run do |task|
54
- task.annotate(self.class)
54
+ spec_task = reactor.async do |spec_task|
55
+ spec_task.annotate("running example")
55
56
 
56
- spec_task = task.async do |spec_task|
57
- spec_task.annotate("running example")
58
-
59
- result = yield
60
-
61
- timer_task&.stop
62
-
63
- raise Async::Stop
64
- end
57
+ result = yield(spec_task)
65
58
 
66
- begin
67
- timer_task&.wait
68
- spec_task.wait
69
- ensure
70
- spec_task.stop
71
- end
72
- end.wait
59
+ # We are finished, so stop the timer task if it was started:
60
+ timer_task&.stop
61
+
62
+ # Now stop the entire reactor:
63
+ raise Async::Stop
64
+ end
65
+
66
+ begin
67
+ timer_task&.wait
68
+ spec_task.wait
69
+ ensure
70
+ spec_task.stop
71
+ end
73
72
 
74
73
  return result
75
74
  end
@@ -77,19 +76,29 @@ module Async
77
76
 
78
77
  ::RSpec.shared_context Reactor do
79
78
  include Reactor
80
- let(:reactor) {Async::Reactor.new}
79
+ let(:reactor) {@reactor}
80
+
81
+ # This is fiber local:
82
+ rspec_context = Thread.current[:__rspec]
81
83
 
82
84
  include_context Async::RSpec::Leaks
83
85
 
84
86
  around(:each) do |example|
85
- duration = example.metadata.fetch(:timeout, 10)
87
+ duration = example.metadata.fetch(:timeout, 60)
86
88
 
87
89
  begin
88
- run_in_reactor(reactor, duration) do
89
- example.run
90
+ Sync do |task|
91
+ @reactor = task.reactor
92
+
93
+ task.annotate(self.class)
94
+
95
+ run_in_reactor(@reactor, duration) do
96
+ Thread.current[:__rspec] = rspec_context
97
+ example.run
98
+ end
99
+ ensure
100
+ @reactor = nil
90
101
  end
91
- ensure
92
- reactor.close
93
102
  end
94
103
  end
95
104
  end
@@ -1,22 +1,7 @@
1
- # Copyright, 2018, by Samuel G. D. Williams. <http://www.codeotaku.com>
2
- #
3
- # Permission is hereby granted, free of charge, to any person obtaining a copy
4
- # of this software and associated documentation files (the "Software"), to deal
5
- # in the Software without restriction, including without limitation the rights
6
- # to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
7
- # copies of the Software, and to permit persons to whom the Software is
8
- # furnished to do so, subject to the following conditions:
9
- #
10
- # The above copyright notice and this permission notice shall be included in
11
- # all copies or substantial portions of the Software.
12
- #
13
- # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
14
- # IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
15
- # FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
16
- # AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
17
- # LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
18
- # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
19
- # THE SOFTWARE.
1
+ # frozen_string_literal: true
2
+
3
+ # Released under the MIT License.
4
+ # Copyright, 2018-2021, by Samuel Williams.
20
5
 
21
6
  require 'openssl'
22
7
 
@@ -1,25 +1,10 @@
1
- # Copyright, 2017, by Samuel G. D. Williams. <http://www.codeotaku.com>
2
- #
3
- # Permission is hereby granted, free of charge, to any person obtaining a copy
4
- # of this software and associated documentation files (the "Software"), to deal
5
- # in the Software without restriction, including without limitation the rights
6
- # to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
7
- # copies of the Software, and to permit persons to whom the Software is
8
- # furnished to do so, subject to the following conditions:
9
- #
10
- # The above copyright notice and this permission notice shall be included in
11
- # all copies or substantial portions of the Software.
12
- #
13
- # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
14
- # IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
15
- # FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
16
- # AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
17
- # LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
18
- # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
19
- # THE SOFTWARE.
1
+ # frozen_string_literal: true
2
+
3
+ # Released under the MIT License.
4
+ # Copyright, 2017-2021, by Samuel Williams.
20
5
 
21
6
  module Async
22
7
  module RSpec
23
- VERSION = "1.16.0"
8
+ VERSION = "1.17.0"
24
9
  end
25
10
  end
data/lib/async/rspec.rb CHANGED
@@ -1,22 +1,7 @@
1
- # Copyright, 2017, by Samuel G. D. Williams. <http://www.codeotaku.com>
2
- #
3
- # Permission is hereby granted, free of charge, to any person obtaining a copy
4
- # of this software and associated documentation files (the "Software"), to deal
5
- # in the Software without restriction, including without limitation the rights
6
- # to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
7
- # copies of the Software, and to permit persons to whom the Software is
8
- # furnished to do so, subject to the following conditions:
9
- #
10
- # The above copyright notice and this permission notice shall be included in
11
- # all copies or substantial portions of the Software.
12
- #
13
- # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
14
- # IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
15
- # FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
16
- # AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
17
- # LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
18
- # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
19
- # THE SOFTWARE.
1
+ # frozen_string_literal: true
2
+
3
+ # Released under the MIT License.
4
+ # Copyright, 2017-2018, by Samuel Williams.
20
5
 
21
6
  require_relative "rspec/version"
22
7
  require_relative "rspec/reactor"
data/license.md ADDED
@@ -0,0 +1,26 @@
1
+ # MIT License
2
+
3
+ Copyright, 2017-2023, by Samuel Williams.
4
+ Copyright, 2018, by Janko Marohnić.
5
+ Copyright, 2019, by Jeremy Jung.
6
+ Copyright, 2019, by Cyril Roelandt.
7
+ Copyright, 2020-2021, by Olle Jonsson.
8
+ Copyright, 2023, by Robin Goos.
9
+
10
+ Permission is hereby granted, free of charge, to any person obtaining a copy
11
+ of this software and associated documentation files (the "Software"), to deal
12
+ in the Software without restriction, including without limitation the rights
13
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
14
+ copies of the Software, and to permit persons to whom the Software is
15
+ furnished to do so, subject to the following conditions:
16
+
17
+ The above copyright notice and this permission notice shall be included in all
18
+ copies or substantial portions of the Software.
19
+
20
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
21
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
22
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
23
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
24
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
25
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
26
+ SOFTWARE.
data/readme.md ADDED
@@ -0,0 +1,94 @@
1
+ # Async::RSpec
2
+
3
+ Provides useful `RSpec.shared_context`s for testing code that builds on top of [async](https://github.com/socketry/async).
4
+
5
+ [![Development Status](https://github.com/socketry/async-rspec/workflows/Test/badge.svg)](https://github.com/socketry/async-rspec/actions?workflow=Test)
6
+
7
+ ## Installation
8
+
9
+ ``` shell
10
+ $ bundle add async-rspec
11
+ ```
12
+
13
+ Then add this require statement to the top of `spec/spec_helper.rb`
14
+
15
+ ``` ruby
16
+ require 'async/rspec'
17
+ ```
18
+
19
+ ## Usage
20
+
21
+ ### Async Reactor
22
+
23
+ Many specs need to run within a reactor. A shared context is provided which includes all the relevant bits, including the above leaks checks. If your spec fails to run in less than 10 seconds, an `Async::TimeoutError` raises to prevent your test suite from hanging.
24
+
25
+ ``` ruby
26
+ require 'async/io'
27
+
28
+ RSpec.describe Async::IO do
29
+ include_context Async::RSpec::Reactor
30
+
31
+ let(:pipe) {IO.pipe}
32
+ let(:input) {Async::IO::Generic.new(pipe.first)}
33
+ let(:output) {Async::IO::Generic.new(pipe.last)}
34
+
35
+ it "should send and receive data within the same reactor" do
36
+ message = nil
37
+
38
+ output_task = reactor.async do
39
+ message = input.read(1024)
40
+ end
41
+
42
+ reactor.async do
43
+ output.write("Hello World")
44
+ end
45
+
46
+ output_task.wait
47
+ expect(message).to be == "Hello World"
48
+
49
+ input.close
50
+ output.close
51
+ end
52
+ end
53
+ ```
54
+
55
+ ### Changing Timeout
56
+
57
+ You can change the timeout by specifying it as an option:
58
+
59
+ ``` ruby
60
+ RSpec.describe MySlowThing, timeout: 60 do
61
+ # ...
62
+ end
63
+ ```
64
+
65
+ ### File Descriptor Leaks
66
+
67
+ Leaking sockets and other kinds of IOs are a problem for long running services. `Async::RSpec::Leaks` tracks all open sockets both before and after the spec. If any are left open, a `RuntimeError` is raised and the spec fails.
68
+
69
+ ``` ruby
70
+ RSpec.describe "leaky ios" do
71
+ include_context Async::RSpec::Leaks
72
+
73
+ # The following fails:
74
+ it "leaks io" do
75
+ @input, @output = IO.pipe
76
+ end
77
+ end
78
+ ```
79
+
80
+ In some cases, the Ruby garbage collector will close IOs. In the above case, it's possible that just writing `IO.pipe` will not leak as Ruby will garbage collect the resulting IOs immediately. It's still incorrect to not close IOs, so don't depend on this behaviour.
81
+
82
+ ### Allocations
83
+
84
+ This functionality was moved to [`rspec-memory`](https://github.com/socketry/rspec-memory).
85
+
86
+ ## Contributing
87
+
88
+ We welcome contributions to this project.
89
+
90
+ 1. Fork it.
91
+ 2. Create your feature branch (`git checkout -b my-new-feature`).
92
+ 3. Commit your changes (`git commit -am 'Add some feature'`).
93
+ 4. Push to the branch (`git push origin my-new-feature`).
94
+ 5. Create new Pull Request.
data.tar.gz.sig ADDED
Binary file
metadata CHANGED
@@ -1,14 +1,48 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: async-rspec
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.16.0
4
+ version: 1.17.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Samuel Williams
8
+ - Janko Marohnić
9
+ - Olle Jonsson
10
+ - Cyril Roelandt
11
+ - Jeremy Jung
12
+ - Robin Goos
8
13
  autorequire:
9
14
  bindir: bin
10
- cert_chain: []
11
- date: 2021-04-26 00:00:00.000000000 Z
15
+ cert_chain:
16
+ - |
17
+ -----BEGIN CERTIFICATE-----
18
+ MIIE2DCCA0CgAwIBAgIBATANBgkqhkiG9w0BAQsFADBhMRgwFgYDVQQDDA9zYW11
19
+ ZWwud2lsbGlhbXMxHTAbBgoJkiaJk/IsZAEZFg1vcmlvbnRyYW5zZmVyMRIwEAYK
20
+ CZImiZPyLGQBGRYCY28xEjAQBgoJkiaJk/IsZAEZFgJuejAeFw0yMjA4MDYwNDUz
21
+ MjRaFw0zMjA4MDMwNDUzMjRaMGExGDAWBgNVBAMMD3NhbXVlbC53aWxsaWFtczEd
22
+ MBsGCgmSJomT8ixkARkWDW9yaW9udHJhbnNmZXIxEjAQBgoJkiaJk/IsZAEZFgJj
23
+ bzESMBAGCgmSJomT8ixkARkWAm56MIIBojANBgkqhkiG9w0BAQEFAAOCAY8AMIIB
24
+ igKCAYEAomvSopQXQ24+9DBB6I6jxRI2auu3VVb4nOjmmHq7XWM4u3HL+pni63X2
25
+ 9qZdoq9xt7H+RPbwL28LDpDNflYQXoOhoVhQ37Pjn9YDjl8/4/9xa9+NUpl9XDIW
26
+ sGkaOY0eqsQm1pEWkHJr3zn/fxoKPZPfaJOglovdxf7dgsHz67Xgd/ka+Wo1YqoE
27
+ e5AUKRwUuvaUaumAKgPH+4E4oiLXI4T1Ff5Q7xxv6yXvHuYtlMHhYfgNn8iiW8WN
28
+ XibYXPNP7NtieSQqwR/xM6IRSoyXKuS+ZNGDPUUGk8RoiV/xvVN4LrVm9upSc0ss
29
+ RZ6qwOQmXCo/lLcDUxJAgG95cPw//sI00tZan75VgsGzSWAOdjQpFM0l4dxvKwHn
30
+ tUeT3ZsAgt0JnGqNm2Bkz81kG4A2hSyFZTFA8vZGhp+hz+8Q573tAR89y9YJBdYM
31
+ zp0FM4zwMNEUwgfRzv1tEVVUEXmoFCyhzonUUw4nE4CFu/sE3ffhjKcXcY//qiSW
32
+ xm4erY3XAgMBAAGjgZowgZcwCQYDVR0TBAIwADALBgNVHQ8EBAMCBLAwHQYDVR0O
33
+ BBYEFO9t7XWuFf2SKLmuijgqR4sGDlRsMC4GA1UdEQQnMCWBI3NhbXVlbC53aWxs
34
+ aWFtc0BvcmlvbnRyYW5zZmVyLmNvLm56MC4GA1UdEgQnMCWBI3NhbXVlbC53aWxs
35
+ aWFtc0BvcmlvbnRyYW5zZmVyLmNvLm56MA0GCSqGSIb3DQEBCwUAA4IBgQB5sxkE
36
+ cBsSYwK6fYpM+hA5B5yZY2+L0Z+27jF1pWGgbhPH8/FjjBLVn+VFok3CDpRqwXCl
37
+ xCO40JEkKdznNy2avOMra6PFiQyOE74kCtv7P+Fdc+FhgqI5lMon6tt9rNeXmnW/
38
+ c1NaMRdxy999hmRGzUSFjozcCwxpy/LwabxtdXwXgSay4mQ32EDjqR1TixS1+smp
39
+ 8C/NCWgpIfzpHGJsjvmH2wAfKtTTqB9CVKLCWEnCHyCaRVuKkrKjqhYCdmMBqCws
40
+ JkxfQWC+jBVeG9ZtPhQgZpfhvh+6hMhraUYRQ6XGyvBqEUe+yo6DKIT3MtGE2+CP
41
+ eX9i9ZWBydWb8/rvmwmX2kkcBbX0hZS1rcR593hGc61JR6lvkGYQ2MYskBveyaxt
42
+ Q2K9NVun/S785AP05vKkXZEFYxqG6EW012U4oLcFl5MySFajYXRYbuUpH6AY+HP8
43
+ voD0MPg1DssDLKwXyt1eKD/+Fq0bFWhwVM/1XiAXL7lyYUyOq24KHgQ2Csg=
44
+ -----END CERTIFICATE-----
45
+ date: 2023-06-05 00:00:00.000000000 Z
12
46
  dependencies:
13
47
  - !ruby/object:Gem::Dependency
14
48
  name: rspec
@@ -56,16 +90,16 @@ dependencies:
56
90
  name: async
57
91
  requirement: !ruby/object:Gem::Requirement
58
92
  requirements:
59
- - - "~>"
93
+ - - ">="
60
94
  - !ruby/object:Gem::Version
61
- version: '1.24'
95
+ version: '0'
62
96
  type: :development
63
97
  prerelease: false
64
98
  version_requirements: !ruby/object:Gem::Requirement
65
99
  requirements:
66
- - - "~>"
100
+ - - ">="
67
101
  - !ruby/object:Gem::Version
68
- version: '1.24'
102
+ version: '0'
69
103
  - !ruby/object:Gem::Dependency
70
104
  name: async-io
71
105
  requirement: !ruby/object:Gem::Requirement
@@ -122,6 +156,8 @@ files:
122
156
  - lib/async/rspec/reactor.rb
123
157
  - lib/async/rspec/ssl.rb
124
158
  - lib/async/rspec/version.rb
159
+ - license.md
160
+ - readme.md
125
161
  homepage: https://github.com/socketry/async-rspec
126
162
  licenses:
127
163
  - MIT
@@ -141,7 +177,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
141
177
  - !ruby/object:Gem::Version
142
178
  version: '0'
143
179
  requirements: []
144
- rubygems_version: 3.2.3
180
+ rubygems_version: 3.4.10
145
181
  signing_key:
146
182
  specification_version: 4
147
183
  summary: Helpers for writing specs against the async gem.
metadata.gz.sig ADDED
Binary file