nio4r 2.5.8 → 2.5.9

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: 3f8bda8397f00743e7ca6814df9ae0072197fe4a1c9ba49efa74c8b44148ee71
4
- data.tar.gz: c3fb1c470e4d378346f67b0c07fb7ffe4fe5527339097297a3b93ac950202d0b
3
+ metadata.gz: 1572a271d329a29e7168c04b8f3776a41f23f495227a0a41ab9f1cd80233f1d6
4
+ data.tar.gz: 6c7e944abd93038272299db034c3c67829d093e2ce4a75292eba4c654cd2ae0f
5
5
  SHA512:
6
- metadata.gz: 51c13b6c08c436b692b0e858abc704d1e682667a302c55e43635a043daf2b26b8faff4ad67c1ea02ca2d619efad776903497b15ad67d2dd22894dd82a598cd49
7
- data.tar.gz: '08297c9a051369fd39ad02489ddeb35595f1fbba313c3516d24f60e4e4e46db41307da90075a5a3b11ac377ad410bf908719d585ad1e3ba1b7ba867d520e4c0c'
6
+ metadata.gz: 78e502f54f1eedeb948c412e9ecc5fa241c082b3ed292d9a50d1acbff76ee499904d70367eccb52db5c513f6bd91ac647846fa6cce6632ca9ba22c5d28a46682
7
+ data.tar.gz: 992198b186b8186e37bc84da3d89b1ddbae76ae9e8aaa45973111a8a9cd94e80c7b23ed9558449c409079b2b9c6cb1ca9edefa78ef5f8010c43a7c34ee000fc4
@@ -14,34 +14,48 @@ jobs:
14
14
  strategy:
15
15
  fail-fast: false
16
16
  matrix:
17
- os: [ ubuntu-20.04, ubuntu-18.04, macos-10.15, windows-2019 ]
18
- ruby: [ head, 3.0, 2.7, 2.6, 2.5, 2.4, jruby, truffleruby-head ]
17
+ os:
18
+ - ubuntu-22.04
19
+ - macos-11
20
+ - windows-2022
21
+ ruby:
22
+ - "2.4"
23
+ - "2.5"
24
+ - "2.6"
25
+ - "2.7"
26
+ - "3.0"
27
+ - "3.1"
28
+ - "3.2"
29
+ - "head"
30
+ - "jruby"
31
+ - "truffleruby"
19
32
  include:
20
- - { os: ubuntu-16.04, ruby: 3.0 }
21
- - { os: ubuntu-16.04, ruby: 2.4 }
33
+ - {os: ubuntu-20.04, ruby: "3.2"}
34
+ - {os: windows-2019, ruby: "3.2"}
35
+ - {os: windows-2022, ruby: ucrt}
22
36
  exclude:
23
- - { os: windows-2019, ruby: head }
24
- - { os: windows-2019, ruby: jruby }
25
- - { os: windows-2019, ruby: truffleruby-head }
37
+ - {os: windows-2022, ruby: head}
38
+ - {os: windows-2022, ruby: jruby}
39
+ - {os: windows-2022, ruby: truffleruby}
26
40
 
27
41
  steps:
28
- - name: repo checkout
29
- uses: actions/checkout@v2
42
+ - uses: actions/checkout@v3
30
43
 
31
- - name: load ruby
32
- uses: ruby/setup-ruby@v1
44
+ - name: set JAVA_HOME
45
+ if: |
46
+ startsWith(matrix.ruby, 'jruby')
47
+ shell: bash
48
+ run: |
49
+ echo JAVA_HOME=$JAVA_HOME_11_X64 >> $GITHUB_ENV
50
+
51
+ - uses: ruby/setup-ruby@v1
33
52
  with:
34
53
  ruby-version: ${{matrix.ruby}}
54
+ bundler-cache: true
35
55
 
36
- - name: RubyGems, Bundler Update
37
- run: gem update --system --no-document --conservative
38
-
39
- - name: bundle install
40
- run: bundle install --path .bundle/gems --without development
41
-
42
- - name: compile
56
+ - name: Compile
43
57
  run: bundle exec rake compile
44
58
 
45
- - name: test
59
+ - name: Test
46
60
  run: bundle exec rake spec
47
61
  timeout-minutes: 10
data/CHANGES.md CHANGED
@@ -1,3 +1,22 @@
1
+ ## 2.5.8 (2021-08-03)
2
+
3
+ * [#276](https://github.com/socketry/nio4r/pull/276)
4
+ Fix missing return statement in function returning non-void (issue [#275](https://github.com/socketry/nio4r/pull/275))
5
+ ([@ioquatix])
6
+ * Remove `guard-rspec` from development dependencies ([@ioquatix])
7
+
8
+ ## 2.5.7 (2021-03-04)
9
+
10
+ * [#267](https://github.com/socketry/nio4r/pull/267)
11
+ Don't try to link universal extension
12
+ ([@ioquatix])
13
+
14
+ ## 2.5.6 (2021-03-04)
15
+
16
+ * [#268](https://github.com/socketry/nio4r/pull/268)
17
+ Prefer kqueue when on OSX >= v10.12.2
18
+ ([@jcmfernandes])
19
+
1
20
  ## 2.5.5 (2021-02-05)
2
21
 
3
22
  * [#256](https://github.com/socketry/nio4r/pull/256)
data/Gemfile CHANGED
@@ -11,8 +11,7 @@ group :development do
11
11
  end
12
12
 
13
13
  group :development, :test do
14
- gem "coveralls", require: false
15
- gem "rake-compiler", require: false
14
+ gem "rake-compiler", "~> 1.1.9", require: false
16
15
  gem "rspec", "~> 3.7", require: false
17
16
  gem "rubocop", "0.82.0", require: false
18
17
  end
data/README.md CHANGED
@@ -3,7 +3,6 @@
3
3
  [![Gem Version](https://badge.fury.io/rb/nio4r.svg)](http://rubygems.org/gems/nio4r)
4
4
  [![Build Status](https://github.com/socketry/nio4r/workflows/nio4r/badge.svg?branch=master&event=push)](https://github.com/socketry/nio4r/actions?query=workflow:nio4r)
5
5
  [![Code Climate](https://codeclimate.com/github/socketry/nio4r.svg)](https://codeclimate.com/github/socketry/nio4r)
6
- [![Coverage Status](https://coveralls.io/repos/socketry/nio4r/badge.svg?branch=master)](https://coveralls.io/r/socketry/nio4r)
7
6
  [![Yard Docs](https://img.shields.io/badge/yard-docs-blue.svg)](http://www.rubydoc.info/gems/nio4r/2.2.0)
8
7
 
9
8
  **New I/O for Ruby (nio4r)**: cross-platform asynchronous I/O primitives for
@@ -98,36 +97,3 @@ rake clean
98
97
  rake compile
99
98
  rake release
100
99
  ```
101
-
102
- ## License
103
-
104
- Released under the MIT license.
105
-
106
- Copyright, 2019, by Tony Arcieri.
107
- Copyright, 2019, by [Samuel G. D. Williams](http://www.codeotaku.com/samuel-williams).
108
-
109
- Permission is hereby granted, free of charge, to any person obtaining a copy
110
- of this software and associated documentation files (the "Software"), to deal
111
- in the Software without restriction, including without limitation the rights
112
- to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
113
- copies of the Software, and to permit persons to whom the Software is
114
- furnished to do so, subject to the following conditions:
115
-
116
- The above copyright notice and this permission notice shall be included in
117
- all copies or substantial portions of the Software.
118
-
119
- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
120
- IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
121
- FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
122
- AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
123
- LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
124
- OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
125
- THE SOFTWARE.
126
-
127
- ### libev
128
-
129
- Released under the BSD license. See [ext/libev/LICENSE] for details.
130
-
131
- Copyright, 2007-2019, by Marc Alexander Lehmann.
132
-
133
- [ext/libev/LICENSE]: https://github.com/socketry/nio4r/blob/master/ext/libev/LICENSE
data/ext/nio4r/extconf.rb CHANGED
@@ -4,7 +4,10 @@ require "rubygems"
4
4
 
5
5
  # Write a dummy Makefile on Windows because we use the pure Ruby implementation there
6
6
  if Gem.win_platform?
7
- require "devkit" if RUBY_PLATFORM.include?("mingw")
7
+ begin
8
+ require "devkit" if RUBY_PLATFORM.include?("mingw")
9
+ rescue LoadError => e
10
+ end
8
11
  File.write("Makefile", "all install::\n")
9
12
  File.write("nio4r_ext.so", "")
10
13
  exit
data/ext/nio4r/selector.c CHANGED
@@ -43,13 +43,13 @@ static VALUE NIO_Selector_closed(VALUE self);
43
43
  static VALUE NIO_Selector_is_empty(VALUE self);
44
44
 
45
45
  /* Internal functions */
46
- static VALUE NIO_Selector_synchronize(VALUE self, VALUE (*func)(VALUE *args), VALUE *args);
46
+ static VALUE NIO_Selector_synchronize(VALUE self, VALUE (*func)(VALUE arg), VALUE arg);
47
47
  static VALUE NIO_Selector_unlock(VALUE lock);
48
- static VALUE NIO_Selector_register_synchronized(VALUE *args);
49
- static VALUE NIO_Selector_deregister_synchronized(VALUE *args);
50
- static VALUE NIO_Selector_select_synchronized(VALUE *args);
51
- static VALUE NIO_Selector_close_synchronized(VALUE *args);
52
- static VALUE NIO_Selector_closed_synchronized(VALUE *args);
48
+ static VALUE NIO_Selector_register_synchronized(VALUE arg);
49
+ static VALUE NIO_Selector_deregister_synchronized(VALUE arg);
50
+ static VALUE NIO_Selector_select_synchronized(VALUE arg);
51
+ static VALUE NIO_Selector_close_synchronized(VALUE arg);
52
+ static VALUE NIO_Selector_closed_synchronized(VALUE arg);
53
53
 
54
54
  static int NIO_Selector_run(struct NIO_Selector *selector, VALUE timeout);
55
55
  static void NIO_Selector_timeout_callback(struct ev_loop *ev_loop, struct ev_timer *timer, int revents);
@@ -62,7 +62,7 @@ static void NIO_Selector_wakeup_callback(struct ev_loop *ev_loop, struct ev_io *
62
62
  #define BUSYWAIT_INTERVAL 0.01
63
63
 
64
64
  /* Selectors wait for events */
65
- void Init_NIO_Selector()
65
+ void Init_NIO_Selector(void)
66
66
  {
67
67
  mNIO = rb_define_module("NIO");
68
68
  cNIO_Selector = rb_define_class_under(mNIO, "Selector", rb_cObject);
@@ -285,7 +285,7 @@ static VALUE NIO_Selector_backend(VALUE self)
285
285
  }
286
286
 
287
287
  /* Synchronize around a reentrant selector lock */
288
- static VALUE NIO_Selector_synchronize(VALUE self, VALUE (*func)(VALUE *args), VALUE *args)
288
+ static VALUE NIO_Selector_synchronize(VALUE self, VALUE (*func)(VALUE arg), VALUE arg)
289
289
  {
290
290
  VALUE current_thread, lock_holder, lock;
291
291
 
@@ -298,10 +298,10 @@ static VALUE NIO_Selector_synchronize(VALUE self, VALUE (*func)(VALUE *args), VA
298
298
  rb_ivar_set(self, rb_intern("lock_holder"), current_thread);
299
299
 
300
300
  /* We've acquired the lock, so ensure we unlock it */
301
- return rb_ensure(func, (VALUE)args, NIO_Selector_unlock, self);
301
+ return rb_ensure(func, (VALUE)arg, NIO_Selector_unlock, self);
302
302
  } else {
303
303
  /* We already hold the selector lock, so no need to unlock it */
304
- return func(args);
304
+ return func(arg);
305
305
  }
306
306
  }
307
307
 
@@ -321,17 +321,18 @@ static VALUE NIO_Selector_unlock(VALUE self)
321
321
  /* Register an IO object with the selector for the given interests */
322
322
  static VALUE NIO_Selector_register(VALUE self, VALUE io, VALUE interests)
323
323
  {
324
- VALUE args[3] = { self, io, interests };
325
- return NIO_Selector_synchronize(self, NIO_Selector_register_synchronized, args);
324
+ VALUE args[3] = {self, io, interests};
325
+ return NIO_Selector_synchronize(self, NIO_Selector_register_synchronized, (VALUE)args);
326
326
  }
327
327
 
328
328
  /* Internal implementation of register after acquiring mutex */
329
- static VALUE NIO_Selector_register_synchronized(VALUE *args)
329
+ static VALUE NIO_Selector_register_synchronized(VALUE _args)
330
330
  {
331
331
  VALUE self, io, interests, selectables, monitor;
332
332
  VALUE monitor_args[3];
333
333
  struct NIO_Selector *selector;
334
334
 
335
+ VALUE *args = (VALUE *)_args;
335
336
  self = args[0];
336
337
  io = args[1];
337
338
  interests = args[2];
@@ -361,15 +362,16 @@ static VALUE NIO_Selector_register_synchronized(VALUE *args)
361
362
  /* Deregister an IO object from the selector */
362
363
  static VALUE NIO_Selector_deregister(VALUE self, VALUE io)
363
364
  {
364
- VALUE args[2] = { self, io };
365
- return NIO_Selector_synchronize(self, NIO_Selector_deregister_synchronized, args);
365
+ VALUE args[2] = {self, io};
366
+ return NIO_Selector_synchronize(self, NIO_Selector_deregister_synchronized, (VALUE)args);
366
367
  }
367
368
 
368
369
  /* Internal implementation of register after acquiring mutex */
369
- static VALUE NIO_Selector_deregister_synchronized(VALUE *args)
370
+ static VALUE NIO_Selector_deregister_synchronized(VALUE _args)
370
371
  {
371
372
  VALUE self, io, selectables, monitor;
372
373
 
374
+ VALUE *args = (VALUE *)_args;
373
375
  self = args[0];
374
376
  io = args[1];
375
377
 
@@ -396,7 +398,6 @@ static VALUE NIO_Selector_is_registered(VALUE self, VALUE io)
396
398
  static VALUE NIO_Selector_select(int argc, VALUE *argv, VALUE self)
397
399
  {
398
400
  VALUE timeout;
399
- VALUE args[2];
400
401
 
401
402
  rb_scan_args(argc, argv, "01", &timeout);
402
403
 
@@ -404,19 +405,19 @@ static VALUE NIO_Selector_select(int argc, VALUE *argv, VALUE self)
404
405
  rb_raise(rb_eArgError, "time interval must be positive");
405
406
  }
406
407
 
407
- args[0] = self;
408
- args[1] = timeout;
409
-
410
- return NIO_Selector_synchronize(self, NIO_Selector_select_synchronized, args);
408
+ VALUE args[2] = {self, timeout};
409
+ return NIO_Selector_synchronize(self, NIO_Selector_select_synchronized, (VALUE)args);
411
410
  }
412
411
 
413
412
  /* Internal implementation of select with the selector lock held */
414
- static VALUE NIO_Selector_select_synchronized(VALUE *args)
413
+ static VALUE NIO_Selector_select_synchronized(VALUE _args)
415
414
  {
416
415
  int ready;
417
416
  VALUE ready_array;
418
417
  struct NIO_Selector *selector;
419
418
 
419
+ VALUE *args = (VALUE *)_args;
420
+
420
421
  Data_Get_Struct(args[0], struct NIO_Selector, selector);
421
422
 
422
423
  if (selector->closed) {
@@ -504,14 +505,13 @@ static VALUE NIO_Selector_wakeup(VALUE self)
504
505
  /* Close the selector and free system resources */
505
506
  static VALUE NIO_Selector_close(VALUE self)
506
507
  {
507
- VALUE args[1] = { self };
508
- return NIO_Selector_synchronize(self, NIO_Selector_close_synchronized, args);
508
+ return NIO_Selector_synchronize(self, NIO_Selector_close_synchronized, self);
509
509
  }
510
510
 
511
- static VALUE NIO_Selector_close_synchronized(VALUE *args)
511
+ static VALUE NIO_Selector_close_synchronized(VALUE self)
512
512
  {
513
513
  struct NIO_Selector *selector;
514
- VALUE self = args[0];
514
+
515
515
  Data_Get_Struct(self, struct NIO_Selector, selector);
516
516
 
517
517
  NIO_Selector_shutdown(selector);
@@ -522,14 +522,13 @@ static VALUE NIO_Selector_close_synchronized(VALUE *args)
522
522
  /* Is the selector closed? */
523
523
  static VALUE NIO_Selector_closed(VALUE self)
524
524
  {
525
- VALUE args[1] = { self };
526
- return NIO_Selector_synchronize(self, NIO_Selector_closed_synchronized, args);
525
+ return NIO_Selector_synchronize(self, NIO_Selector_closed_synchronized, self);
527
526
  }
528
527
 
529
- static VALUE NIO_Selector_closed_synchronized(VALUE *args)
528
+ static VALUE NIO_Selector_closed_synchronized(VALUE self)
530
529
  {
531
530
  struct NIO_Selector *selector;
532
- VALUE self = args[0];
531
+
533
532
  Data_Get_Struct(self, struct NIO_Selector, selector);
534
533
 
535
534
  return selector->closed ? Qtrue : Qfalse;
data/lib/nio/version.rb CHANGED
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module NIO
4
- VERSION = "2.5.8"
4
+ VERSION = "2.5.9"
5
5
  end
data/license.md ADDED
@@ -0,0 +1,66 @@
1
+ # MIT License
2
+
3
+ Copyright, 2011-2020, by Tony Arcieri.
4
+ Copyright, 2012, by Logan Bowers.
5
+ Copyright, 2013, by FURUHASHI Sadayuki.
6
+ Copyright, 2013, by Stephen von Takach.
7
+ Copyright, 2013, by Tim Carey-Smith.
8
+ Copyright, 2013, by brainopia.
9
+ Copyright, 2013, by Luis Lavena.
10
+ Copyright, 2014, by SHIBATA Hiroshi.
11
+ Copyright, 2014, by Sergey Avseyev.
12
+ Copyright, 2014, by JohnnyT.
13
+ Copyright, 2015-2017, by Tiago Cardoso.
14
+ Copyright, 2015, by Daniel Berger.
15
+ Copyright, 2015, by Upekshe.
16
+ Copyright, 2015-2016, by UpeksheJay.
17
+ Copyright, 2015, by Vladimir Kochnev.
18
+ Copyright, 2016-2018, by Jun Aruga.
19
+ Copyright, 2016, by Omer Katz.
20
+ Copyright, 2016-2021, by Olle Jonsson.
21
+ Copyright, 2017, by usa.
22
+ Copyright, 2017, by HoneyryderChuck.
23
+ Copyright, 2017, by tompng.
24
+ Copyright, 2018-2021, by Samuel Williams.
25
+ Copyright, 2019, by Cédric Boutillier.
26
+ Copyright, 2019-2020, by MSP-Greg.
27
+ Copyright, 2019-2020, by Benoit Daloze.
28
+ Copyright, 2019, by Jesús Burgos Maciá.
29
+ Copyright, 2019, by Thomas Kuntz.
30
+ Copyright, 2019, by Orien Madgwick.
31
+ Copyright, 2019, by Thomas Dziedzic.
32
+ Copyright, 2019, by Zhang Kang.
33
+ Copyright, 2020, by eladeyal-intel.
34
+ Copyright, 2020, by Pedro Paiva.
35
+ Copyright, 2020, by Bo.
36
+ Copyright, 2020, by Charles Oliver Nutter.
37
+ Copyright, 2020-2021, by Joao Fernandes.
38
+ Copyright, 2021, by Jun Jiang.
39
+ Copyright, 2021, by Jeffrey Martin.
40
+ Copyright, 2021, by Pavel Lobashov.
41
+
42
+ Permission is hereby granted, free of charge, to any person obtaining a copy
43
+ of this software and associated documentation files (the "Software"), to deal
44
+ in the Software without restriction, including without limitation the rights
45
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
46
+ copies of the Software, and to permit persons to whom the Software is
47
+ furnished to do so, subject to the following conditions:
48
+
49
+ The above copyright notice and this permission notice shall be included in all
50
+ copies or substantial portions of the Software.
51
+
52
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
53
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
54
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
55
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
56
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
57
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
58
+ SOFTWARE.
59
+
60
+ ## libev
61
+
62
+ Released under the BSD license. See [ext/libev/LICENSE] for details.
63
+
64
+ Copyright, 2007-2019, by Marc Alexander Lehmann.
65
+
66
+ [ext/libev/LICENSE]: https://github.com/socketry/nio4r/blob/master/ext/libev/LICENSE
@@ -4,8 +4,7 @@ if defined? JRUBY_VERSION
4
4
  require "rake/javaextensiontask"
5
5
  Rake::JavaExtensionTask.new("nio4r_ext") do |ext|
6
6
  ext.ext_dir = "ext/nio4r"
7
- ext.source_version = "1.8"
8
- ext.target_version = "1.8"
7
+ ext.release = '8'
9
8
  end
10
9
  else
11
10
  require "rake/extensiontask"
@@ -1,11 +1,9 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  require "spec_helper"
4
+ require "openssl"
4
5
 
5
6
  RSpec.describe OpenSSL::SSL::SSLSocket do
6
-
7
- require "openssl"
8
-
9
7
  before(:all) do
10
8
  @tls = []
11
9
  end
data/spec/spec_helper.rb CHANGED
@@ -1,8 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require "coveralls"
4
- Coveralls.wear!
5
-
6
3
  require "nio"
7
4
  require "support/selectable_examples"
8
5
 
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: nio4r
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.5.8
4
+ version: 2.5.9
5
5
  platform: ruby
6
6
  authors:
7
7
  - Tony Arcieri
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2021-08-03 00:00:00.000000000 Z
11
+ date: 2023-04-02 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -88,6 +88,7 @@ files:
88
88
  - lib/nio/monitor.rb
89
89
  - lib/nio/selector.rb
90
90
  - lib/nio/version.rb
91
+ - license.md
91
92
  - logo.png
92
93
  - nio4r.gemspec
93
94
  - rakelib/extension.rake
@@ -109,8 +110,8 @@ licenses:
109
110
  metadata:
110
111
  bug_tracker_uri: https://github.com/socketry/nio4r/issues
111
112
  changelog_uri: https://github.com/socketry/nio4r/blob/master/CHANGES.md
112
- documentation_uri: https://www.rubydoc.info/gems/nio4r/2.5.8
113
- source_code_uri: https://github.com/socketry/nio4r/tree/v2.5.8
113
+ documentation_uri: https://www.rubydoc.info/gems/nio4r/2.5.9
114
+ source_code_uri: https://github.com/socketry/nio4r/tree/v2.5.9
114
115
  wiki_uri: https://github.com/socketry/nio4r/wiki
115
116
  post_install_message:
116
117
  rdoc_options: []
@@ -127,7 +128,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
127
128
  - !ruby/object:Gem::Version
128
129
  version: '0'
129
130
  requirements: []
130
- rubygems_version: 3.2.22
131
+ rubygems_version: 3.4.6
131
132
  signing_key:
132
133
  specification_version: 4
133
134
  summary: New IO for Ruby