supplement 2.15 → 2.16

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.
Files changed (4) hide show
  1. checksums.yaml +4 -4
  2. data/README +1 -1
  3. data/lib/process.c +35 -0
  4. metadata +3 -3
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: f7d2c8a62b912713a7bd3fde72cee97061910e0ee58e24486244bf08300b53aa
4
- data.tar.gz: f08f0bd64339672d195765b8815f9d25e26274b0253897ceb54cc5f475dbd768
3
+ metadata.gz: 6ba64230cdc82b400a4999ac0981145a2d1e4d59344b940adeafa1e036efb5ba
4
+ data.tar.gz: b4d43816094e6fffae62522754729237fcc41f0f58790c9753e388a94093645d
5
5
  SHA512:
6
- metadata.gz: 77e7a1dc857124d246dea1254da88d575cf2284513cc2cda5ee43ef600e9bb1a498b7e6669961142c3b70259e7090edb75800a5802add6275abf80b70e6bf86f
7
- data.tar.gz: 4ee842477fe6b142c9956267d0347bf5b9fd19da879ba52bf69f079108e3492a4a1c3674568940c20975e201a536518364f56b5c0c7ac1084392dbefb4fa69f0
6
+ metadata.gz: 449788ae54c3681d99470dcde71117550f835e4646508c75421dc22f6e17632a7ec6ab5614b3a269dc959e0b27b4a83873f5f795ec2b87a25f13cfcab45c8f12
7
+ data.tar.gz: 05e0431b4a23da92168e22a5e8ae57e834e28a0fb9d2e9edca9627d13255933a25cc464fd6b6bab21565248e57d51ac34ffbd0c98246e8b2050891c6db99294a
data/README CHANGED
@@ -1,4 +1,4 @@
1
- = supplement 2.15 -- Useful Ruby enhancements
1
+ = supplement 2.16 -- Useful Ruby enhancements
2
2
 
3
3
 
4
4
  Some simple Ruby extensions.
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
 
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.16'
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-04-16 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.10
85
85
  signing_key:
86
86
  specification_version: 4
87
87
  summary: Simple Ruby extensions