io-wait 0.1.0 → 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 +8 -1
- data/ext/io/wait/depend +1 -1
- data/ext/io/wait/extconf.rb +18 -13
- data/ext/io/wait/wait.c +165 -17
- metadata +10 -13
- data/.gitignore +0 -11
- data/.travis.yml +0 -6
- data/Rakefile +0 -12
- data/bin/console +0 -14
- data/bin/setup +0 -8
- data/io-wait.gemspec +0 -22
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
|
@@ -1,4 +1,11 @@
|
|
|
1
1
|
source 'https://rubygems.org'
|
|
2
2
|
|
|
3
|
-
# Specify your gem's dependencies in
|
|
3
|
+
# Specify your gem's dependencies in io-wait.gemspec
|
|
4
4
|
gemspec
|
|
5
|
+
|
|
6
|
+
group :development do
|
|
7
|
+
gem "rake"
|
|
8
|
+
gem "rake-compiler"
|
|
9
|
+
gem "test-unit"
|
|
10
|
+
gem 'ruby-maven', :platforms => :jruby
|
|
11
|
+
end
|
data/ext/io/wait/depend
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
wait.o: $(RUBY_EXTCONF_H)
|
|
3
3
|
wait.o: $(arch_hdrdir)/ruby/config.h
|
|
4
4
|
wait.o: $(hdrdir)/ruby.h
|
|
5
|
-
wait.o: $(hdrdir)/ruby/assert.h
|
|
5
|
+
# wait.o: $(hdrdir)/ruby/assert.h # not in 2.6
|
|
6
6
|
wait.o: $(hdrdir)/ruby/backward.h
|
|
7
7
|
wait.o: $(hdrdir)/ruby/defines.h
|
|
8
8
|
wait.o: $(hdrdir)/ruby/encoding.h
|
data/ext/io/wait/extconf.rb
CHANGED
|
@@ -1,19 +1,24 @@
|
|
|
1
1
|
# frozen_string_literal: false
|
|
2
2
|
require 'mkmf'
|
|
3
|
-
target = "io/wait"
|
|
4
3
|
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
fionread = %w[sys/ioctl.h sys/filio.h sys/socket.h].find do |h|
|
|
8
|
-
have_macro("FIONREAD", [h, ioctl_h].compact)
|
|
9
|
-
end
|
|
10
|
-
if fionread
|
|
11
|
-
$defs << "-DFIONREAD_HEADER=\"<#{fionread}>\""
|
|
12
|
-
create_makefile(target)
|
|
13
|
-
end
|
|
4
|
+
if RUBY_VERSION < "2.6"
|
|
5
|
+
File.write("Makefile", dummy_makefile($srcdir).join(""))
|
|
14
6
|
else
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
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
|
|
18
23
|
end
|
|
19
24
|
end
|
data/ext/io/wait/wait.c
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
/* -*- c-file-style: "ruby"; indent-tabs-mode: t -*- */
|
|
1
2
|
/**********************************************************************
|
|
2
3
|
|
|
3
4
|
io/wait.c -
|
|
@@ -39,6 +40,7 @@
|
|
|
39
40
|
#define FIONREAD_POSSIBLE_P(fd) ((void)(fd),Qtrue)
|
|
40
41
|
#endif
|
|
41
42
|
|
|
43
|
+
#ifndef HAVE_RB_IO_WAIT
|
|
42
44
|
static VALUE io_ready_p _((VALUE io));
|
|
43
45
|
static VALUE io_wait_readable _((int argc, VALUE *argv, VALUE io));
|
|
44
46
|
static VALUE io_wait_writable _((int argc, VALUE *argv, VALUE io));
|
|
@@ -67,6 +69,7 @@ wait_for_single_fd(rb_io_t *fptr, int events, struct timeval *tv)
|
|
|
67
69
|
rb_io_check_closed(fptr);
|
|
68
70
|
return (i & events);
|
|
69
71
|
}
|
|
72
|
+
#endif
|
|
70
73
|
|
|
71
74
|
/*
|
|
72
75
|
* call-seq:
|
|
@@ -74,6 +77,8 @@ wait_for_single_fd(rb_io_t *fptr, int events, struct timeval *tv)
|
|
|
74
77
|
*
|
|
75
78
|
* Returns number of bytes that can be read without blocking.
|
|
76
79
|
* Returns zero if no information available.
|
|
80
|
+
*
|
|
81
|
+
* You must require 'io/wait' to use this method.
|
|
77
82
|
*/
|
|
78
83
|
|
|
79
84
|
static VALUE
|
|
@@ -93,77 +98,164 @@ io_nread(VALUE io)
|
|
|
93
98
|
return INT2FIX(0);
|
|
94
99
|
}
|
|
95
100
|
|
|
101
|
+
#ifdef HAVE_RB_IO_WAIT
|
|
102
|
+
static VALUE
|
|
103
|
+
io_wait_event(VALUE io, int event, VALUE timeout)
|
|
104
|
+
{
|
|
105
|
+
VALUE result = rb_io_wait(io, RB_INT2NUM(event), timeout);
|
|
106
|
+
|
|
107
|
+
if (!RB_TEST(result)) {
|
|
108
|
+
return Qnil;
|
|
109
|
+
}
|
|
110
|
+
|
|
111
|
+
int mask = RB_NUM2INT(result);
|
|
112
|
+
|
|
113
|
+
if (mask & event) {
|
|
114
|
+
return io;
|
|
115
|
+
}
|
|
116
|
+
else {
|
|
117
|
+
return Qfalse;
|
|
118
|
+
}
|
|
119
|
+
}
|
|
120
|
+
#endif
|
|
121
|
+
|
|
96
122
|
/*
|
|
97
123
|
* call-seq:
|
|
98
|
-
* io.ready? ->
|
|
124
|
+
* io.ready? -> truthy or falsy
|
|
99
125
|
*
|
|
100
|
-
* Returns
|
|
126
|
+
* Returns a truthy value if input available without blocking, or a
|
|
127
|
+
* falsy value.
|
|
128
|
+
*
|
|
129
|
+
* You must require 'io/wait' to use this method.
|
|
101
130
|
*/
|
|
102
131
|
|
|
103
132
|
static VALUE
|
|
104
133
|
io_ready_p(VALUE io)
|
|
105
134
|
{
|
|
106
135
|
rb_io_t *fptr;
|
|
136
|
+
#ifndef HAVE_RB_IO_WAIT
|
|
107
137
|
struct timeval tv = {0, 0};
|
|
138
|
+
#endif
|
|
108
139
|
|
|
109
140
|
GetOpenFile(io, fptr);
|
|
110
141
|
rb_io_check_readable(fptr);
|
|
111
142
|
if (rb_io_read_pending(fptr)) return Qtrue;
|
|
143
|
+
|
|
144
|
+
#ifndef HAVE_RB_IO_WAIT
|
|
112
145
|
if (wait_for_single_fd(fptr, RB_WAITFD_IN, &tv))
|
|
113
146
|
return Qtrue;
|
|
147
|
+
#else
|
|
148
|
+
if (RTEST(io_wait_event(io, RUBY_IO_READABLE, RB_INT2NUM(0))))
|
|
149
|
+
return Qtrue;
|
|
150
|
+
#endif
|
|
114
151
|
return Qfalse;
|
|
115
152
|
}
|
|
116
153
|
|
|
117
154
|
/*
|
|
118
155
|
* call-seq:
|
|
119
|
-
* io.wait_readable ->
|
|
120
|
-
* 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.
|
|
121
162
|
*
|
|
122
|
-
*
|
|
123
|
-
* +nil+ when times out.
|
|
124
|
-
* Returns +true+ immediately when buffered data is available.
|
|
163
|
+
* You must require 'io/wait' to use this method.
|
|
125
164
|
*/
|
|
126
165
|
|
|
127
166
|
static VALUE
|
|
128
167
|
io_wait_readable(int argc, VALUE *argv, VALUE io)
|
|
129
168
|
{
|
|
130
169
|
rb_io_t *fptr;
|
|
170
|
+
#ifndef HAVE_RB_IO_WAIT
|
|
131
171
|
struct timeval timerec;
|
|
132
172
|
struct timeval *tv;
|
|
173
|
+
#endif
|
|
133
174
|
|
|
134
175
|
GetOpenFile(io, fptr);
|
|
135
176
|
rb_io_check_readable(fptr);
|
|
177
|
+
|
|
178
|
+
#ifndef HAVE_RB_IO_WAIT
|
|
136
179
|
tv = get_timeout(argc, argv, &timerec);
|
|
180
|
+
#endif
|
|
137
181
|
if (rb_io_read_pending(fptr)) return Qtrue;
|
|
182
|
+
|
|
183
|
+
#ifndef HAVE_RB_IO_WAIT
|
|
138
184
|
if (wait_for_single_fd(fptr, RB_WAITFD_IN, tv)) {
|
|
139
185
|
return io;
|
|
140
186
|
}
|
|
141
187
|
return Qnil;
|
|
188
|
+
#else
|
|
189
|
+
rb_check_arity(argc, 0, 1);
|
|
190
|
+
VALUE timeout = (argc == 1 ? argv[0] : Qnil);
|
|
191
|
+
|
|
192
|
+
return io_wait_event(io, RUBY_IO_READABLE, timeout);
|
|
193
|
+
#endif
|
|
142
194
|
}
|
|
143
195
|
|
|
144
196
|
/*
|
|
145
197
|
* call-seq:
|
|
146
|
-
* io.wait_writable ->
|
|
147
|
-
* io.wait_writable(timeout) ->
|
|
198
|
+
* io.wait_writable -> truthy or falsy
|
|
199
|
+
* io.wait_writable(timeout) -> truthy or falsy
|
|
200
|
+
*
|
|
201
|
+
* Waits until IO is writable and returns a truthy value or a falsy
|
|
202
|
+
* value when times out.
|
|
148
203
|
*
|
|
149
|
-
*
|
|
150
|
-
* +nil+ when times out.
|
|
204
|
+
* You must require 'io/wait' to use this method.
|
|
151
205
|
*/
|
|
152
206
|
static VALUE
|
|
153
207
|
io_wait_writable(int argc, VALUE *argv, VALUE io)
|
|
154
208
|
{
|
|
155
209
|
rb_io_t *fptr;
|
|
210
|
+
#ifndef HAVE_RB_IO_WAIT
|
|
156
211
|
struct timeval timerec;
|
|
157
212
|
struct timeval *tv;
|
|
213
|
+
#endif
|
|
158
214
|
|
|
159
215
|
GetOpenFile(io, fptr);
|
|
160
216
|
rb_io_check_writable(fptr);
|
|
217
|
+
|
|
218
|
+
#ifndef HAVE_RB_IO_WAIT
|
|
161
219
|
tv = get_timeout(argc, argv, &timerec);
|
|
162
220
|
if (wait_for_single_fd(fptr, RB_WAITFD_OUT, tv)) {
|
|
163
221
|
return io;
|
|
164
222
|
}
|
|
165
223
|
return Qnil;
|
|
224
|
+
#else
|
|
225
|
+
rb_check_arity(argc, 0, 1);
|
|
226
|
+
VALUE timeout = (argc == 1 ? argv[0] : Qnil);
|
|
227
|
+
|
|
228
|
+
return io_wait_event(io, RUBY_IO_WRITABLE, timeout);
|
|
229
|
+
#endif
|
|
230
|
+
}
|
|
231
|
+
|
|
232
|
+
#ifdef HAVE_RB_IO_WAIT
|
|
233
|
+
/*
|
|
234
|
+
* call-seq:
|
|
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.
|
|
240
|
+
*
|
|
241
|
+
* You must require 'io/wait' to use this method.
|
|
242
|
+
*/
|
|
243
|
+
static VALUE
|
|
244
|
+
io_wait_priority(int argc, VALUE *argv, VALUE io)
|
|
245
|
+
{
|
|
246
|
+
rb_io_t *fptr = NULL;
|
|
247
|
+
|
|
248
|
+
RB_IO_POINTER(io, fptr);
|
|
249
|
+
rb_io_check_readable(fptr);
|
|
250
|
+
|
|
251
|
+
if (rb_io_read_pending(fptr)) return Qtrue;
|
|
252
|
+
|
|
253
|
+
rb_check_arity(argc, 0, 1);
|
|
254
|
+
VALUE timeout = argc == 1 ? argv[0] : Qnil;
|
|
255
|
+
|
|
256
|
+
return io_wait_event(io, RUBY_IO_PRIORITY, timeout);
|
|
166
257
|
}
|
|
258
|
+
#endif
|
|
167
259
|
|
|
168
260
|
static int
|
|
169
261
|
wait_mode_sym(VALUE mode)
|
|
@@ -201,18 +293,27 @@ wait_mode_sym(VALUE mode)
|
|
|
201
293
|
|
|
202
294
|
/*
|
|
203
295
|
* call-seq:
|
|
204
|
-
* io.wait(
|
|
296
|
+
* io.wait(events, timeout) -> truthy or falsy
|
|
297
|
+
* io.wait(timeout = nil, mode = :read) -> truthy or falsy.
|
|
298
|
+
*
|
|
299
|
+
* Waits until the IO becomes ready for the specified events and returns the
|
|
300
|
+
* subset of events that become ready, or a falsy value when times out.
|
|
301
|
+
*
|
|
302
|
+
* The events can be a bit mask of +IO::READABLE+, +IO::WRITABLE+ or
|
|
303
|
+
* +IO::PRIORITY+.
|
|
304
|
+
*
|
|
305
|
+
* Returns a truthy value immediately when buffered data is available.
|
|
205
306
|
*
|
|
206
|
-
* Waits until IO is readable or writable without blocking and returns
|
|
207
|
-
* +self+, or +nil+ when times out.
|
|
208
|
-
* Returns +true+ immediately when buffered data is available.
|
|
209
307
|
* Optional parameter +mode+ is one of +:read+, +:write+, or
|
|
210
308
|
* +:read_write+.
|
|
309
|
+
*
|
|
310
|
+
* You must require 'io/wait' to use this method.
|
|
211
311
|
*/
|
|
212
312
|
|
|
213
313
|
static VALUE
|
|
214
|
-
|
|
314
|
+
io_wait(int argc, VALUE *argv, VALUE io)
|
|
215
315
|
{
|
|
316
|
+
#ifndef HAVE_RB_IO_WAIT
|
|
216
317
|
rb_io_t *fptr;
|
|
217
318
|
struct timeval timerec;
|
|
218
319
|
struct timeval *tv = NULL;
|
|
@@ -236,6 +337,44 @@ io_wait_readwrite(int argc, VALUE *argv, VALUE io)
|
|
|
236
337
|
if (wait_for_single_fd(fptr, event, tv))
|
|
237
338
|
return io;
|
|
238
339
|
return Qnil;
|
|
340
|
+
#else
|
|
341
|
+
VALUE timeout = Qundef;
|
|
342
|
+
rb_io_event_t events = 0;
|
|
343
|
+
|
|
344
|
+
if (argc != 2 || (RB_SYMBOL_P(argv[0]) || RB_SYMBOL_P(argv[1]))) {
|
|
345
|
+
for (int i = 0; i < argc; i += 1) {
|
|
346
|
+
if (RB_SYMBOL_P(argv[i])) {
|
|
347
|
+
events |= wait_mode_sym(argv[i]);
|
|
348
|
+
}
|
|
349
|
+
else if (timeout == Qundef) {
|
|
350
|
+
rb_time_interval(timeout = argv[i]);
|
|
351
|
+
}
|
|
352
|
+
else {
|
|
353
|
+
rb_raise(rb_eArgError, "timeout given more than once");
|
|
354
|
+
}
|
|
355
|
+
}
|
|
356
|
+
if (timeout == Qundef) timeout = Qnil;
|
|
357
|
+
}
|
|
358
|
+
else /* argc == 2 */ {
|
|
359
|
+
events = RB_NUM2UINT(argv[0]);
|
|
360
|
+
timeout = argv[1];
|
|
361
|
+
}
|
|
362
|
+
|
|
363
|
+
if (events == 0) {
|
|
364
|
+
events = RUBY_IO_READABLE;
|
|
365
|
+
}
|
|
366
|
+
|
|
367
|
+
if (events & RUBY_IO_READABLE) {
|
|
368
|
+
rb_io_t *fptr = NULL;
|
|
369
|
+
RB_IO_POINTER(io, fptr);
|
|
370
|
+
|
|
371
|
+
if (rb_io_read_pending(fptr)) {
|
|
372
|
+
return Qtrue;
|
|
373
|
+
}
|
|
374
|
+
}
|
|
375
|
+
|
|
376
|
+
return io_wait_event(io, events, timeout);
|
|
377
|
+
#endif
|
|
239
378
|
}
|
|
240
379
|
|
|
241
380
|
/*
|
|
@@ -245,9 +384,18 @@ io_wait_readwrite(int argc, VALUE *argv, VALUE io)
|
|
|
245
384
|
void
|
|
246
385
|
Init_wait(void)
|
|
247
386
|
{
|
|
387
|
+
#ifdef HAVE_RB_EXT_RACTOR_SAFE
|
|
388
|
+
RB_EXT_RACTOR_SAFE(true);
|
|
389
|
+
#endif
|
|
390
|
+
|
|
248
391
|
rb_define_method(rb_cIO, "nread", io_nread, 0);
|
|
249
392
|
rb_define_method(rb_cIO, "ready?", io_ready_p, 0);
|
|
250
|
-
|
|
393
|
+
|
|
394
|
+
rb_define_method(rb_cIO, "wait", io_wait, -1);
|
|
395
|
+
|
|
251
396
|
rb_define_method(rb_cIO, "wait_readable", io_wait_readable, -1);
|
|
252
397
|
rb_define_method(rb_cIO, "wait_writable", io_wait_writable, -1);
|
|
398
|
+
#ifdef HAVE_RB_IO_WAIT
|
|
399
|
+
rb_define_method(rb_cIO, "wait_priority", io_wait_priority, -1);
|
|
400
|
+
#endif
|
|
253
401
|
}
|
metadata
CHANGED
|
@@ -1,34 +1,31 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: io-wait
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 0.
|
|
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
|
-
extensions:
|
|
19
|
+
extensions:
|
|
20
|
+
- ext/io/wait/extconf.rb
|
|
18
21
|
extra_rdoc_files: []
|
|
19
22
|
files:
|
|
20
|
-
- ".gitignore"
|
|
21
|
-
- ".travis.yml"
|
|
22
23
|
- COPYING
|
|
23
24
|
- Gemfile
|
|
24
25
|
- README.md
|
|
25
|
-
- Rakefile
|
|
26
|
-
- bin/console
|
|
27
|
-
- bin/setup
|
|
28
26
|
- ext/io/wait/depend
|
|
29
27
|
- ext/io/wait/extconf.rb
|
|
30
28
|
- ext/io/wait/wait.c
|
|
31
|
-
- io-wait.gemspec
|
|
32
29
|
homepage: https://github.com/ruby/io-wait
|
|
33
30
|
licenses:
|
|
34
31
|
- Ruby
|
|
@@ -44,14 +41,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
|
44
41
|
requirements:
|
|
45
42
|
- - ">="
|
|
46
43
|
- !ruby/object:Gem::Version
|
|
47
|
-
version:
|
|
44
|
+
version: '0'
|
|
48
45
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
|
49
46
|
requirements:
|
|
50
|
-
- - "
|
|
47
|
+
- - ">"
|
|
51
48
|
- !ruby/object:Gem::Version
|
|
52
|
-
version:
|
|
49
|
+
version: 1.3.1
|
|
53
50
|
requirements: []
|
|
54
|
-
rubygems_version: 3.
|
|
51
|
+
rubygems_version: 3.4.0.dev
|
|
55
52
|
signing_key:
|
|
56
53
|
specification_version: 4
|
|
57
54
|
summary: Waits until IO is readable or writable without blocking.
|
data/.gitignore
DELETED
data/.travis.yml
DELETED
data/Rakefile
DELETED
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
require "bundler/gem_tasks"
|
|
2
|
-
require "rake/testtask"
|
|
3
|
-
|
|
4
|
-
Rake::TestTask.new(:test) do |t|
|
|
5
|
-
t.libs << "test/lib"
|
|
6
|
-
t.ruby_opts << "-rhelper"
|
|
7
|
-
t.test_files = FileList["test/**/test_*.rb"]
|
|
8
|
-
end
|
|
9
|
-
|
|
10
|
-
require 'rake/extensiontask'
|
|
11
|
-
Rake::ExtensionTask.new("io/wait")
|
|
12
|
-
task :default => :test
|
data/bin/console
DELETED
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
#!/usr/bin/env ruby
|
|
2
|
-
|
|
3
|
-
require "bundler/setup"
|
|
4
|
-
require "io/wait"
|
|
5
|
-
|
|
6
|
-
# You can add fixtures and/or initialization code here to make experimenting
|
|
7
|
-
# with your gem easier. You can also use a different console, if you like.
|
|
8
|
-
|
|
9
|
-
# (If you use this, don't forget to add pry to your Gemfile!)
|
|
10
|
-
# require "pry"
|
|
11
|
-
# Pry.start
|
|
12
|
-
|
|
13
|
-
require "irb"
|
|
14
|
-
IRB.start(__FILE__)
|
data/bin/setup
DELETED
data/io-wait.gemspec
DELETED
|
@@ -1,22 +0,0 @@
|
|
|
1
|
-
Gem::Specification.new do |spec|
|
|
2
|
-
spec.name = "io-wait"
|
|
3
|
-
spec.version = "0.1.0"
|
|
4
|
-
spec.authors = ["Nobu Nakada"]
|
|
5
|
-
spec.email = ["nobu@ruby-lang.org"]
|
|
6
|
-
|
|
7
|
-
spec.summary = %q{Waits until IO is readable or writable without blocking.}
|
|
8
|
-
spec.description = %q{Waits until IO is readable or writable without blocking.}
|
|
9
|
-
spec.homepage = "https://github.com/ruby/io-wait"
|
|
10
|
-
spec.licenses = ["Ruby", "BSD-2-Clause"]
|
|
11
|
-
spec.required_ruby_version = Gem::Requirement.new(">= 2.3.0")
|
|
12
|
-
|
|
13
|
-
spec.metadata["homepage_uri"] = spec.homepage
|
|
14
|
-
spec.metadata["source_code_uri"] = spec.homepage
|
|
15
|
-
|
|
16
|
-
spec.files = Dir.chdir(File.expand_path('..', __FILE__)) do
|
|
17
|
-
`git ls-files -z`.split("\x0").reject { |f| f.match(%r{^(test|spec|features)/}) }
|
|
18
|
-
end
|
|
19
|
-
spec.bindir = "exe"
|
|
20
|
-
spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
|
|
21
|
-
spec.require_paths = ["lib"]
|
|
22
|
-
end
|