supplement 2.13 → 2.14
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/supplement/locked.c +2 -2
- data/lib/supplement/socket.c +53 -0
- data/lib/supplement/socket.h +21 -0
- data/lib/supplement.c +2 -2
- 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: 87a39a1087d00c8d9b259a074c1fdd969e9a76b2fa3dda7b497b909178b16798
|
4
|
+
data.tar.gz: 41649aa614f380e9af051d9bf4d6e47d44b6c2bb359a6b774c19e42c9d714364
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 8219771e3227ecb9d99c1fa4eb658565dec657559181ef098cf31f8567248071c54e496c6debefeadfd05bed7ca7f5520c0ae644725be30e8e979685d6160c8b
|
7
|
+
data.tar.gz: 4488bc07f0cf1087620992e7b5c69e63b639260efd79c020957520e54e81f4f13c49e0707f3a9f4c64c99dd480b08af7fb93f9dce9f038b168dc3c2868512ac6
|
data/README
CHANGED
@@ -1,4 +1,4 @@
|
|
1
|
-
= supplement 2.
|
1
|
+
= supplement 2.14 -- 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/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
@@ -667,8 +667,8 @@ rb_str_axe( int argc, VALUE *argv, VALUE str)
|
|
667
667
|
e = rb_str_strlen( ell);
|
668
668
|
#endif
|
669
669
|
if (newlen > e) {
|
670
|
-
|
671
|
-
|
670
|
+
ret = rb_str_substr( str, 0, newlen - e);
|
671
|
+
rb_str_append( ret, ell);
|
672
672
|
} else
|
673
673
|
ret = rb_str_substr( str, 0, newlen);
|
674
674
|
OBJ_INFECT( ret, str);
|
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.14'
|
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-11-22 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
|