supplement 2.15 → 2.17

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: f7d2c8a62b912713a7bd3fde72cee97061910e0ee58e24486244bf08300b53aa
4
- data.tar.gz: f08f0bd64339672d195765b8815f9d25e26274b0253897ceb54cc5f475dbd768
3
+ metadata.gz: 73e018e3f33dcfe0bea472488523a0afac6633396c4e8e76eab8afaef8a69402
4
+ data.tar.gz: fc145b68d752ee76ceb9a2aa8c37af81039ccf29692bc574f8c6960c24c1f983
5
5
  SHA512:
6
- metadata.gz: 77e7a1dc857124d246dea1254da88d575cf2284513cc2cda5ee43ef600e9bb1a498b7e6669961142c3b70259e7090edb75800a5802add6275abf80b70e6bf86f
7
- data.tar.gz: 4ee842477fe6b142c9956267d0347bf5b9fd19da879ba52bf69f079108e3492a4a1c3674568940c20975e201a536518364f56b5c0c7ac1084392dbefb4fa69f0
6
+ metadata.gz: 7af046c1e4311bcad5705cacfcd8404bc58162571bbb76f923d1abf0e0c4269a087018bf79174a46ffd02dea5c708f75b189e292799f0eda7467d0718d8bbeb3
7
+ data.tar.gz: fc90b82a5585635d96fc4cd2f079082744b4bd925c033d2a5feb37a170b59c973f5a8be663fa64d1d61f19013e0afda36f8a0559683a55a2aecf6b0a80dc27e4
data/README CHANGED
@@ -1,4 +1,4 @@
1
- = supplement 2.15 -- Useful Ruby enhancements
1
+ = supplement 2.17 -- Useful Ruby enhancements
2
2
 
3
3
 
4
4
  Some simple Ruby extensions.
@@ -59,7 +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
+ * TCPServer/UNIXServer.accept with a code block
63
63
  * File system stats
64
64
  * Process.renice
65
65
  * Interval timer
data/lib/process.c CHANGED
@@ -19,6 +19,7 @@
19
19
 
20
20
  static VALUE rb_process_renice( int argc, VALUE *argv, VALUE obj);
21
21
  static VALUE rb_process_sync( VALUE obj);
22
+ static VALUE rb_process_alarm( int argc, VALUE *argv, VALUE obj);
22
23
 
23
24
 
24
25
  /*
@@ -62,9 +63,43 @@ rb_process_sync( VALUE obj)
62
63
  }
63
64
 
64
65
 
66
+ /*
67
+ * call-seq:
68
+ * Process.alarm( seconds = nil) -> nil
69
+ *
70
+ * Set alarm. Examples:
71
+ *
72
+ * Signal.trap :ALRM do
73
+ * puts "Three seconds have passed."
74
+ * end
75
+ * Process.alarm 3
76
+ * sleep 4
77
+ *
78
+ * begin
79
+ * Process.alarm 3
80
+ * sleep
81
+ * rescue SignalException
82
+ * $!.signm == "SIGALRM" or raise
83
+ * puts "Three seconds have passed."
84
+ * end
85
+ */
86
+
87
+ VALUE
88
+ rb_process_alarm( int argc, VALUE *argv, VALUE obj)
89
+ {
90
+ VALUE p;
91
+ unsigned int s;
92
+
93
+ s = rb_scan_args( argc, argv, "01", &p) == 1 ? NUM2INT( p) : 0;
94
+ s = alarm( s);
95
+ return s ? INT2NUM( s) : Qnil;
96
+ }
97
+
98
+
65
99
  void Init_supplement_process( void)
66
100
  {
67
101
  rb_define_singleton_method( rb_mProcess, "renice", rb_process_renice, -1);
68
102
  rb_define_singleton_method( rb_mProcess, "sync", rb_process_sync, 0);
103
+ rb_define_singleton_method( rb_mProcess, "alarm", rb_process_alarm, -1);
69
104
  }
70
105
 
@@ -40,14 +40,18 @@ socket_close( VALUE v)
40
40
  void Init_socket( void)
41
41
  {
42
42
  VALUE rb_cTCPServer;
43
+ VALUE rb_cUNIXServer;
43
44
 
44
45
  id_accept_orig = rb_intern( "accept_orig");
45
46
  id_close = rb_intern( "close");
46
47
 
47
48
  rb_require( "socket");
48
- rb_cTCPServer = rb_const_get( rb_cObject, rb_intern( "TCPServer"));
49
+ rb_cTCPServer = rb_const_get( rb_cObject, rb_intern( "TCPServer"));
50
+ rb_cUNIXServer = rb_const_get( rb_cObject, rb_intern( "UNIXServer"));
49
51
 
50
- rb_define_alias( rb_cTCPServer, "accept_orig", "accept");
51
- rb_define_method( rb_cTCPServer, "accept", rb_socket_accept, 0);
52
+ rb_define_alias( rb_cTCPServer, "accept_orig", "accept");
53
+ rb_define_method( rb_cTCPServer, "accept", rb_socket_accept, 0);
54
+ rb_define_alias( rb_cUNIXServer, "accept_orig", "accept");
55
+ rb_define_method( rb_cUNIXServer, "accept", rb_socket_accept, 0);
52
56
  }
53
57
 
data/lib/supplement.c CHANGED
@@ -1513,7 +1513,6 @@ bsruby_set_thread_critical( VALUE c)
1513
1513
 
1514
1514
  void Init_supplement( void)
1515
1515
  {
1516
- rb_define_alias( rb_cObject, "cls", "class");
1517
1516
  rb_define_method( rb_cObject, "new_string", rb_obj_new_string, 0);
1518
1517
  rb_define_method( rb_cObject, "nil_if", rb_obj_nil_if, 1);
1519
1518
  #ifdef FEATURE_KERNEL_TAP
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.15'
4
+ version: '2.17'
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-12-24 00:00:00.000000000 Z
11
+ date: 2023-10-12 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: autorake
@@ -81,7 +81,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
81
81
  version: '0'
82
82
  requirements:
83
83
  - Ruby and the autorake gem
84
- rubygems_version: 3.0.8
84
+ rubygems_version: 3.4.20
85
85
  signing_key:
86
86
  specification_version: 4
87
87
  summary: Simple Ruby extensions