supplement 2.13 → 2.15
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/README +2 -1
- data/lib/Rakefile +1 -0
- data/lib/mkrf_conf +1 -0
- data/lib/supplement/filesys.c +0 -1
- data/lib/supplement/locked.c +2 -2
- data/lib/supplement/socket.c +53 -0
- data/lib/supplement/socket.h +21 -0
- data/lib/supplement.c +9 -4
- data/lib/supplement.h +2 -0
- metadata +4 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: f7d2c8a62b912713a7bd3fde72cee97061910e0ee58e24486244bf08300b53aa
|
4
|
+
data.tar.gz: f08f0bd64339672d195765b8815f9d25e26274b0253897ceb54cc5f475dbd768
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 77e7a1dc857124d246dea1254da88d575cf2284513cc2cda5ee43ef600e9bb1a498b7e6669961142c3b70259e7090edb75800a5802add6275abf80b70e6bf86f
|
7
|
+
data.tar.gz: 4ee842477fe6b142c9956267d0347bf5b9fd19da879ba52bf69f079108e3492a4a1c3674568940c20975e201a536518364f56b5c0c7ac1084392dbefb4fa69f0
|
data/README
CHANGED
@@ -1,4 +1,4 @@
|
|
1
|
-
= supplement 2.
|
1
|
+
= supplement 2.15 -- Useful Ruby enhancements
|
2
2
|
|
3
3
|
|
4
4
|
Some simple Ruby extensions.
|
@@ -59,6 +59,7 @@ Now here it is where I can just point to.
|
|
59
59
|
* Struct.[]
|
60
60
|
* Integer.roman
|
61
61
|
* Date.easter
|
62
|
+
* TCPServer.accept with a code block
|
62
63
|
* File system stats
|
63
64
|
* Process.renice
|
64
65
|
* Interval timer
|
data/lib/Rakefile
CHANGED
data/lib/mkrf_conf
CHANGED
data/lib/supplement/filesys.c
CHANGED
data/lib/supplement/locked.c
CHANGED
@@ -0,0 +1,53 @@
|
|
1
|
+
/*
|
2
|
+
* supplement/socket.c -- Socket methods
|
3
|
+
*/
|
4
|
+
|
5
|
+
#if HAVE_HEADER_RUBYIO_H
|
6
|
+
#include <rubyio.h>
|
7
|
+
#elif HAVE_HEADER_RUBY_IO_H
|
8
|
+
#include <ruby/io.h>
|
9
|
+
#endif
|
10
|
+
|
11
|
+
|
12
|
+
static ID id_accept_orig;
|
13
|
+
static ID id_close;
|
14
|
+
|
15
|
+
static VALUE socket_close( VALUE);
|
16
|
+
|
17
|
+
|
18
|
+
/*
|
19
|
+
* call-seq:
|
20
|
+
* socket.accept() { |socket| ... } -> obj
|
21
|
+
*
|
22
|
+
* Accept a connection and yield it to a block, if given.
|
23
|
+
*/
|
24
|
+
|
25
|
+
VALUE
|
26
|
+
rb_socket_accept( VALUE socket)
|
27
|
+
{
|
28
|
+
VALUE a = rb_funcall( socket, id_accept_orig, 0);
|
29
|
+
return rb_block_given_p() ?
|
30
|
+
rb_ensure( rb_yield, a, socket_close, a) : a;
|
31
|
+
}
|
32
|
+
|
33
|
+
VALUE
|
34
|
+
socket_close( VALUE v)
|
35
|
+
{
|
36
|
+
return rb_funcall( v, id_close, 0);
|
37
|
+
}
|
38
|
+
|
39
|
+
|
40
|
+
void Init_socket( void)
|
41
|
+
{
|
42
|
+
VALUE rb_cTCPServer;
|
43
|
+
|
44
|
+
id_accept_orig = rb_intern( "accept_orig");
|
45
|
+
id_close = rb_intern( "close");
|
46
|
+
|
47
|
+
rb_require( "socket");
|
48
|
+
rb_cTCPServer = rb_const_get( rb_cObject, rb_intern( "TCPServer"));
|
49
|
+
|
50
|
+
rb_define_alias( rb_cTCPServer, "accept_orig", "accept");
|
51
|
+
rb_define_method( rb_cTCPServer, "accept", rb_socket_accept, 0);
|
52
|
+
}
|
53
|
+
|
@@ -0,0 +1,21 @@
|
|
1
|
+
/*
|
2
|
+
* supplement/socket.h -- Socket methods
|
3
|
+
*/
|
4
|
+
|
5
|
+
#ifndef __SUPPLEMENT_SOCKET_H__
|
6
|
+
#define __SUPPLEMENT_SOCKET_H__
|
7
|
+
|
8
|
+
#if HAVE_HEADER_RUBY_H
|
9
|
+
#include <ruby.h>
|
10
|
+
#elif HAVE_HEADER_RUBY_RUBY_H
|
11
|
+
#include <ruby/ruby.h>
|
12
|
+
#endif
|
13
|
+
|
14
|
+
|
15
|
+
extern VALUE rb_socket_accept( VALUE);
|
16
|
+
|
17
|
+
|
18
|
+
extern void Init_socket( void);
|
19
|
+
|
20
|
+
#endif
|
21
|
+
|
data/lib/supplement.c
CHANGED
@@ -328,7 +328,6 @@ rb_str_eat( int argc, VALUE *argv, VALUE str)
|
|
328
328
|
val = rb_str_new5( str, RSTRING_PTR( str) + r, -n);
|
329
329
|
}
|
330
330
|
RSTRING_LEN( str) = r;
|
331
|
-
OBJ_INFECT( val, str);
|
332
331
|
#else
|
333
332
|
if (n > 0) {
|
334
333
|
r = 0;
|
@@ -667,11 +666,10 @@ rb_str_axe( int argc, VALUE *argv, VALUE str)
|
|
667
666
|
e = rb_str_strlen( ell);
|
668
667
|
#endif
|
669
668
|
if (newlen > e) {
|
670
|
-
|
671
|
-
|
669
|
+
ret = rb_str_substr( str, 0, newlen - e);
|
670
|
+
rb_str_append( ret, ell);
|
672
671
|
} else
|
673
672
|
ret = rb_str_substr( str, 0, newlen);
|
674
|
-
OBJ_INFECT( ret, str);
|
675
673
|
} else
|
676
674
|
ret = str;
|
677
675
|
return ret;
|
@@ -1189,6 +1187,9 @@ rb_hash_notempty_p( VALUE hash)
|
|
1189
1187
|
* Document-class: File
|
1190
1188
|
*/
|
1191
1189
|
|
1190
|
+
|
1191
|
+
#ifdef FEATURE_FILE_SIZE
|
1192
|
+
|
1192
1193
|
/*
|
1193
1194
|
* call-seq:
|
1194
1195
|
* size -> integer
|
@@ -1223,6 +1224,8 @@ rb_file_size( VALUE obj)
|
|
1223
1224
|
return INT2FIX( st.st_size);
|
1224
1225
|
}
|
1225
1226
|
|
1227
|
+
#endif
|
1228
|
+
|
1226
1229
|
|
1227
1230
|
/*
|
1228
1231
|
* call-seq:
|
@@ -1568,7 +1571,9 @@ void Init_supplement( void)
|
|
1568
1571
|
|
1569
1572
|
rb_define_method( rb_cHash, "notempty?", rb_hash_notempty_p, 0);
|
1570
1573
|
|
1574
|
+
#ifdef FEATURE_FILE_SIZE
|
1571
1575
|
rb_define_method( rb_cFile, "size", rb_file_size, 0);
|
1576
|
+
#endif
|
1572
1577
|
rb_define_singleton_method( rb_cFile, "umask", rb_file_s_umask, -1);
|
1573
1578
|
|
1574
1579
|
rb_define_singleton_method( rb_cDir, "current", rb_dir_s_current, 0);
|
data/lib/supplement.h
CHANGED
@@ -66,7 +66,9 @@ extern VALUE rb_num_cbrt( VALUE);
|
|
66
66
|
|
67
67
|
extern VALUE rb_hash_notempty_p( VALUE);
|
68
68
|
|
69
|
+
#ifdef FEATURE_FILE_SIZE
|
69
70
|
extern VALUE rb_file_size( VALUE);
|
71
|
+
#endif
|
70
72
|
extern VALUE rb_file_s_umask( int, VALUE *, VALUE);
|
71
73
|
extern VALUE rb_dir_s_current( VALUE);
|
72
74
|
extern VALUE rb_dir_s_mkdir_bang( int, VALUE *, VALUE);
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: supplement
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: '2.
|
4
|
+
version: '2.15'
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Bertram Scharpf
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2022-
|
11
|
+
date: 2022-12-24 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: autorake
|
@@ -53,6 +53,8 @@ files:
|
|
53
53
|
- lib/supplement/locked.c
|
54
54
|
- lib/supplement/locked.h
|
55
55
|
- lib/supplement/roman.rb
|
56
|
+
- lib/supplement/socket.c
|
57
|
+
- lib/supplement/socket.h
|
56
58
|
- lib/supplement/terminal.c
|
57
59
|
- lib/supplement/terminal.h
|
58
60
|
homepage: http://www.bertram-scharpf.de/software/supplement
|