io-wait 0.2.1 → 0.2.2.pre1
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 +4 -4
- data/Gemfile +7 -0
- data/ext/io/wait/extconf.rb +18 -14
- data/ext/io/wait/wait.c +32 -19
- metadata +8 -12
- data/Rakefile +0 -19
- data/io-wait.gemspec +0 -27
- data/rakelib/changelogs.rake +0 -34
- data/rakelib/epoch.rake +0 -5
- data/rakelib/sync_tool.rake +0 -6
- data/rakelib/version.rake +0 -44
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 3cdf9086254a2bafdcebba616ff05a5b024389e554861fcea442fc27882bd73a
|
|
4
|
+
data.tar.gz: 51740df7f2f5b67161a3c6e336698de3a345f38ed331e4e701af28f3990875b8
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 55eb2c59c806b21fb6d038c7ccc58ec59f1a7e7a5a4e5bc2991b893b19f2a8265624e666daed915a4b58c0981619bb3459d80aa7856be6a8c9ba1277449f1b83
|
|
7
|
+
data.tar.gz: ecc6d22a99dbb5ac2c911f187c0253a30c3764e398997cde8d57efd54d278a317cfbc6149ab8d2a1695b71119ab04c0498c122111d37b8eeb544a74372ce3937
|
data/Gemfile
CHANGED
data/ext/io/wait/extconf.rb
CHANGED
|
@@ -1,20 +1,24 @@
|
|
|
1
1
|
# frozen_string_literal: false
|
|
2
2
|
require 'mkmf'
|
|
3
|
-
target = "io/wait"
|
|
4
3
|
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
have_header(ioctl_h = "sys/ioctl.h") or ioctl_h = nil
|
|
8
|
-
fionread = %w[sys/ioctl.h sys/filio.h sys/socket.h].find do |h|
|
|
9
|
-
have_macro("FIONREAD", [h, ioctl_h].compact)
|
|
10
|
-
end
|
|
11
|
-
if fionread
|
|
12
|
-
$defs << "-DFIONREAD_HEADER=\"<#{fionread}>\""
|
|
13
|
-
create_makefile(target)
|
|
14
|
-
end
|
|
4
|
+
if RUBY_VERSION < "2.6"
|
|
5
|
+
File.write("Makefile", dummy_makefile($srcdir).join(""))
|
|
15
6
|
else
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
7
|
+
target = "io/wait"
|
|
8
|
+
have_func("rb_io_wait")
|
|
9
|
+
unless macro_defined?("DOSISH", "#include <ruby.h>")
|
|
10
|
+
have_header(ioctl_h = "sys/ioctl.h") or ioctl_h = nil
|
|
11
|
+
fionread = %w[sys/ioctl.h sys/filio.h sys/socket.h].find do |h|
|
|
12
|
+
have_macro("FIONREAD", [h, ioctl_h].compact)
|
|
13
|
+
end
|
|
14
|
+
if fionread
|
|
15
|
+
$defs << "-DFIONREAD_HEADER=\"<#{fionread}>\""
|
|
16
|
+
create_makefile(target)
|
|
17
|
+
end
|
|
18
|
+
else
|
|
19
|
+
if have_func("rb_w32_ioctlsocket", "ruby.h")
|
|
20
|
+
have_func("rb_w32_is_socket", "ruby.h")
|
|
21
|
+
create_makefile(target)
|
|
22
|
+
end
|
|
19
23
|
end
|
|
20
24
|
end
|
data/ext/io/wait/wait.c
CHANGED
|
@@ -77,6 +77,8 @@ wait_for_single_fd(rb_io_t *fptr, int events, struct timeval *tv)
|
|
|
77
77
|
*
|
|
78
78
|
* Returns number of bytes that can be read without blocking.
|
|
79
79
|
* Returns zero if no information available.
|
|
80
|
+
*
|
|
81
|
+
* You must require 'io/wait' to use this method.
|
|
80
82
|
*/
|
|
81
83
|
|
|
82
84
|
static VALUE
|
|
@@ -119,9 +121,12 @@ io_wait_event(VALUE io, int event, VALUE timeout)
|
|
|
119
121
|
|
|
120
122
|
/*
|
|
121
123
|
* call-seq:
|
|
122
|
-
* io.ready? ->
|
|
124
|
+
* io.ready? -> truthy or falsy
|
|
125
|
+
*
|
|
126
|
+
* Returns a truthy value if input available without blocking, or a
|
|
127
|
+
* falsy value.
|
|
123
128
|
*
|
|
124
|
-
*
|
|
129
|
+
* You must require 'io/wait' to use this method.
|
|
125
130
|
*/
|
|
126
131
|
|
|
127
132
|
static VALUE
|
|
@@ -148,12 +153,14 @@ io_ready_p(VALUE io)
|
|
|
148
153
|
|
|
149
154
|
/*
|
|
150
155
|
* call-seq:
|
|
151
|
-
* io.wait_readable ->
|
|
152
|
-
* io.wait_readable(timeout) ->
|
|
156
|
+
* io.wait_readable -> truthy or falsy
|
|
157
|
+
* io.wait_readable(timeout) -> truthy or falsy
|
|
158
|
+
*
|
|
159
|
+
* Waits until IO is readable and returns a truthy value, or a falsy
|
|
160
|
+
* value when times out. Returns a truthy value immediately when
|
|
161
|
+
* buffered data is available.
|
|
153
162
|
*
|
|
154
|
-
*
|
|
155
|
-
* +false+ when times out.
|
|
156
|
-
* Returns +true+ immediately when buffered data is available.
|
|
163
|
+
* You must require 'io/wait' to use this method.
|
|
157
164
|
*/
|
|
158
165
|
|
|
159
166
|
static VALUE
|
|
@@ -188,11 +195,13 @@ io_wait_readable(int argc, VALUE *argv, VALUE io)
|
|
|
188
195
|
|
|
189
196
|
/*
|
|
190
197
|
* call-seq:
|
|
191
|
-
* io.wait_writable ->
|
|
192
|
-
* io.wait_writable(timeout) ->
|
|
198
|
+
* io.wait_writable -> truthy or falsy
|
|
199
|
+
* io.wait_writable(timeout) -> truthy or falsy
|
|
193
200
|
*
|
|
194
|
-
* Waits until IO is writable and returns
|
|
195
|
-
*
|
|
201
|
+
* Waits until IO is writable and returns a truthy value or a falsy
|
|
202
|
+
* value when times out.
|
|
203
|
+
*
|
|
204
|
+
* You must require 'io/wait' to use this method.
|
|
196
205
|
*/
|
|
197
206
|
static VALUE
|
|
198
207
|
io_wait_writable(int argc, VALUE *argv, VALUE io)
|
|
@@ -223,11 +232,13 @@ io_wait_writable(int argc, VALUE *argv, VALUE io)
|
|
|
223
232
|
#ifdef HAVE_RB_IO_WAIT
|
|
224
233
|
/*
|
|
225
234
|
* call-seq:
|
|
226
|
-
* io.wait_priority ->
|
|
227
|
-
* io.wait_priority(timeout) ->
|
|
235
|
+
* io.wait_priority -> truthy or falsy
|
|
236
|
+
* io.wait_priority(timeout) -> truthy or falsy
|
|
237
|
+
*
|
|
238
|
+
* Waits until IO is priority and returns a truthy value or a falsy
|
|
239
|
+
* value when times out.
|
|
228
240
|
*
|
|
229
|
-
*
|
|
230
|
-
* +false+ when times out.
|
|
241
|
+
* You must require 'io/wait' to use this method.
|
|
231
242
|
*/
|
|
232
243
|
static VALUE
|
|
233
244
|
io_wait_priority(int argc, VALUE *argv, VALUE io)
|
|
@@ -282,19 +293,21 @@ wait_mode_sym(VALUE mode)
|
|
|
282
293
|
|
|
283
294
|
/*
|
|
284
295
|
* call-seq:
|
|
285
|
-
* io.wait(events, timeout) ->
|
|
286
|
-
* io.wait(timeout = nil, mode = :read) ->
|
|
296
|
+
* io.wait(events, timeout) -> truthy or falsy
|
|
297
|
+
* io.wait(timeout = nil, mode = :read) -> truthy or falsy.
|
|
287
298
|
*
|
|
288
299
|
* Waits until the IO becomes ready for the specified events and returns the
|
|
289
|
-
* subset of events that become ready, or
|
|
300
|
+
* subset of events that become ready, or a falsy value when times out.
|
|
290
301
|
*
|
|
291
302
|
* The events can be a bit mask of +IO::READABLE+, +IO::WRITABLE+ or
|
|
292
303
|
* +IO::PRIORITY+.
|
|
293
304
|
*
|
|
294
|
-
* Returns
|
|
305
|
+
* Returns a truthy value immediately when buffered data is available.
|
|
295
306
|
*
|
|
296
307
|
* Optional parameter +mode+ is one of +:read+, +:write+, or
|
|
297
308
|
* +:read_write+.
|
|
309
|
+
*
|
|
310
|
+
* You must require 'io/wait' to use this method.
|
|
298
311
|
*/
|
|
299
312
|
|
|
300
313
|
static VALUE
|
metadata
CHANGED
|
@@ -1,18 +1,20 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: io-wait
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 0.2.
|
|
4
|
+
version: 0.2.2.pre1
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Nobu Nakada
|
|
8
|
+
- Charles Oliver Nutter
|
|
8
9
|
autorequire:
|
|
9
10
|
bindir: exe
|
|
10
11
|
cert_chain: []
|
|
11
|
-
date:
|
|
12
|
+
date: 2022-03-10 00:00:00.000000000 Z
|
|
12
13
|
dependencies: []
|
|
13
14
|
description: Waits until IO is readable or writable without blocking.
|
|
14
15
|
email:
|
|
15
16
|
- nobu@ruby-lang.org
|
|
17
|
+
- headius@headius.com
|
|
16
18
|
executables: []
|
|
17
19
|
extensions:
|
|
18
20
|
- ext/io/wait/extconf.rb
|
|
@@ -21,15 +23,9 @@ files:
|
|
|
21
23
|
- COPYING
|
|
22
24
|
- Gemfile
|
|
23
25
|
- README.md
|
|
24
|
-
- Rakefile
|
|
25
26
|
- ext/io/wait/depend
|
|
26
27
|
- ext/io/wait/extconf.rb
|
|
27
28
|
- ext/io/wait/wait.c
|
|
28
|
-
- io-wait.gemspec
|
|
29
|
-
- rakelib/changelogs.rake
|
|
30
|
-
- rakelib/epoch.rake
|
|
31
|
-
- rakelib/sync_tool.rake
|
|
32
|
-
- rakelib/version.rake
|
|
33
29
|
homepage: https://github.com/ruby/io-wait
|
|
34
30
|
licenses:
|
|
35
31
|
- Ruby
|
|
@@ -45,14 +41,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
|
45
41
|
requirements:
|
|
46
42
|
- - ">="
|
|
47
43
|
- !ruby/object:Gem::Version
|
|
48
|
-
version:
|
|
44
|
+
version: '0'
|
|
49
45
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
|
50
46
|
requirements:
|
|
51
|
-
- - "
|
|
47
|
+
- - ">"
|
|
52
48
|
- !ruby/object:Gem::Version
|
|
53
|
-
version:
|
|
49
|
+
version: 1.3.1
|
|
54
50
|
requirements: []
|
|
55
|
-
rubygems_version: 3.
|
|
51
|
+
rubygems_version: 3.4.0.dev
|
|
56
52
|
signing_key:
|
|
57
53
|
specification_version: 4
|
|
58
54
|
summary: Waits until IO is readable or writable without blocking.
|
data/Rakefile
DELETED
|
@@ -1,19 +0,0 @@
|
|
|
1
|
-
require "bundler/gem_tasks"
|
|
2
|
-
require "rake/testtask"
|
|
3
|
-
|
|
4
|
-
name = "io/wait"
|
|
5
|
-
|
|
6
|
-
require 'rake/extensiontask'
|
|
7
|
-
extask = Rake::ExtensionTask.new(name) do |x|
|
|
8
|
-
x.lib_dir << "/#{RUBY_VERSION}/#{x.platform}"
|
|
9
|
-
end
|
|
10
|
-
Rake::TestTask.new(:test) do |t|
|
|
11
|
-
t.libs << extask.lib_dir
|
|
12
|
-
t.libs << "test/lib"
|
|
13
|
-
t.ruby_opts << "-rhelper"
|
|
14
|
-
t.test_files = FileList["test/**/test_*.rb"]
|
|
15
|
-
end
|
|
16
|
-
|
|
17
|
-
task :test => :compile
|
|
18
|
-
|
|
19
|
-
task :default => :test
|
data/io-wait.gemspec
DELETED
|
@@ -1,27 +0,0 @@
|
|
|
1
|
-
_VERSION = "0.2.1"
|
|
2
|
-
|
|
3
|
-
Gem::Specification.new do |spec|
|
|
4
|
-
spec.name = "io-wait"
|
|
5
|
-
spec.version = _VERSION
|
|
6
|
-
spec.authors = ["Nobu Nakada"]
|
|
7
|
-
spec.email = ["nobu@ruby-lang.org"]
|
|
8
|
-
|
|
9
|
-
spec.summary = %q{Waits until IO is readable or writable without blocking.}
|
|
10
|
-
spec.description = %q{Waits until IO is readable or writable without blocking.}
|
|
11
|
-
spec.homepage = "https://github.com/ruby/io-wait"
|
|
12
|
-
spec.licenses = ["Ruby", "BSD-2-Clause"]
|
|
13
|
-
spec.required_ruby_version = Gem::Requirement.new(">= 2.6.0")
|
|
14
|
-
|
|
15
|
-
spec.metadata["homepage_uri"] = spec.homepage
|
|
16
|
-
spec.metadata["source_code_uri"] = spec.homepage
|
|
17
|
-
|
|
18
|
-
spec.files = Dir.chdir(File.expand_path('..', __FILE__)) do
|
|
19
|
-
`git ls-files -z`.split("\x0").reject do |f|
|
|
20
|
-
f.match(%r{\A(?:test|spec|features)/|\A\.(?:git|travis)})
|
|
21
|
-
end
|
|
22
|
-
end
|
|
23
|
-
spec.extensions = %w[ext/io/wait/extconf.rb]
|
|
24
|
-
spec.bindir = "exe"
|
|
25
|
-
spec.executables = []
|
|
26
|
-
spec.require_paths = ["lib"]
|
|
27
|
-
end
|
data/rakelib/changelogs.rake
DELETED
|
@@ -1,34 +0,0 @@
|
|
|
1
|
-
task "build" => "changelogs"
|
|
2
|
-
|
|
3
|
-
changelog = proc do |output, ver = nil, prev = nil|
|
|
4
|
-
ver &&= Gem::Version.new(ver)
|
|
5
|
-
range = [[prev], [ver, "HEAD"]].map {|ver, branch| ver ? "v#{ver.to_s}" : branch}.compact.join("..")
|
|
6
|
-
IO.popen(%W[git log --format=fuller --topo-order --no-merges #{range}]) do |log|
|
|
7
|
-
line = log.gets
|
|
8
|
-
FileUtils.mkpath(File.dirname(output))
|
|
9
|
-
File.open(output, "wb") do |f|
|
|
10
|
-
f.print "-*- coding: utf-8 -*-\n\n", line
|
|
11
|
-
log.each_line do |line|
|
|
12
|
-
line.sub!(/^(?!:)(?:Author|Commit)?(?:Date)?: /, ' \&')
|
|
13
|
-
line.sub!(/ +$/, '')
|
|
14
|
-
f.print(line)
|
|
15
|
-
end
|
|
16
|
-
end
|
|
17
|
-
end
|
|
18
|
-
end
|
|
19
|
-
|
|
20
|
-
tags = IO.popen(%w[git tag -l v[0-9]*]).grep(/v(.*)/) {$1}
|
|
21
|
-
tags.sort_by! {|tag| tag.scan(/\d+/).map(&:to_i)}
|
|
22
|
-
tags.inject(nil) do |prev, tag|
|
|
23
|
-
task("logs/ChangeLog-#{tag}") {|t| changelog[t.name, tag, prev]}
|
|
24
|
-
tag
|
|
25
|
-
end
|
|
26
|
-
|
|
27
|
-
desc "Make ChangeLog"
|
|
28
|
-
task "ChangeLog", [:ver, :prev] do |t, ver: nil, prev: tags.last|
|
|
29
|
-
changelog[t.name, ver, prev]
|
|
30
|
-
end
|
|
31
|
-
|
|
32
|
-
changelogs = ["ChangeLog", *tags.map {|tag| "logs/ChangeLog-#{tag}"}]
|
|
33
|
-
task "changelogs" => changelogs
|
|
34
|
-
CLOBBER.concat(changelogs) << "logs"
|
data/rakelib/epoch.rake
DELETED
data/rakelib/sync_tool.rake
DELETED
data/rakelib/version.rake
DELETED
|
@@ -1,44 +0,0 @@
|
|
|
1
|
-
class << (helper = Bundler::GemHelper.instance)
|
|
2
|
-
def update_gemspec
|
|
3
|
-
path = gemspec.loaded_from
|
|
4
|
-
File.open(path, "r+b") do |f|
|
|
5
|
-
d = f.read
|
|
6
|
-
if d.sub!(/^(_VERSION\s*=\s*)".*"/) {$1 + gemspec.version.to_s.dump}
|
|
7
|
-
f.rewind
|
|
8
|
-
f.truncate(0)
|
|
9
|
-
f.print(d)
|
|
10
|
-
end
|
|
11
|
-
end
|
|
12
|
-
end
|
|
13
|
-
|
|
14
|
-
def commit_bump
|
|
15
|
-
sh(%W[git commit -m bump\ up\ to\ #{gemspec.version}
|
|
16
|
-
#{gemspec.loaded_from}])
|
|
17
|
-
end
|
|
18
|
-
|
|
19
|
-
def version=(v)
|
|
20
|
-
gemspec.version = v
|
|
21
|
-
update_gemspec
|
|
22
|
-
commit_bump
|
|
23
|
-
end
|
|
24
|
-
end
|
|
25
|
-
|
|
26
|
-
major, minor, teeny = helper.gemspec.version.segments
|
|
27
|
-
|
|
28
|
-
task "bump:teeny" do
|
|
29
|
-
helper.version = Gem::Version.new("#{major}.#{minor}.#{teeny+1}")
|
|
30
|
-
end
|
|
31
|
-
|
|
32
|
-
task "bump:minor" do
|
|
33
|
-
helper.version = Gem::Version.new("#{major}.#{minor+1}.0")
|
|
34
|
-
end
|
|
35
|
-
|
|
36
|
-
task "bump:major" do
|
|
37
|
-
helper.version = Gem::Version.new("#{major+1}.0.0")
|
|
38
|
-
end
|
|
39
|
-
|
|
40
|
-
task "bump" => "bump:teeny"
|
|
41
|
-
|
|
42
|
-
task "tag" do
|
|
43
|
-
helper.__send__(:tag_version)
|
|
44
|
-
end
|