supplement 2.13 → 2.15
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/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
|