supplement 2.6 → 2.11
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/LICENSE +2 -6
- data/README +1 -4
- data/lib/Rakefile +1 -1
- data/lib/mkrf_conf +16 -12
- data/lib/supplement.c +22 -3
- data/lib/supplement.h +3 -2
- data/lib/supplement/date.rb +42 -0
- data/lib/supplement/locked.c +4 -0
- metadata +5 -5
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: c2935fc175268595e2ed21a4a36e27a02efe9947af2de5fbeab6ccc8ff26ff6e
|
4
|
+
data.tar.gz: 23a99040b0aca40913bb5f5cfa7e81b0c57b3be820909bd3e350663df7592c41
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 8d05e6b19340ab1ba16b5621991c6f7459bfc76583efd14ce158a88112f188dbdefb07bd9b2101d626be88b4ecaf5ce8fca7314c8743595b503f1a0f5edb118a
|
7
|
+
data.tar.gz: fdd8366aba00486f8c85673a40a517ecd5e549fbd594471aa6775e2f5ad9adcd9dd5c6642e6048b523ba2ce5a2c6a59ab4ea36233e9868f23be686b2d5c64dde
|
data/LICENSE
CHANGED
@@ -1,9 +1,5 @@
|
|
1
|
-
|
2
|
-
|
3
|
-
/ __| | | | '_ \| '_ \| |/ _ \ '_ ` _ \ / _ \ '_ \| __|
|
4
|
-
\__ \ |_| | |_) | |_) | | __/ | | | | | __/ | | | |_
|
5
|
-
|___/\__,_| .__/| .__/|_|\___|_| |_| |_|\___|_| |_|\__|
|
6
|
-
|_| |_|
|
1
|
+
= supplement Ruby Gem
|
2
|
+
|
7
3
|
|
8
4
|
Copyright (C) 2009-2020, Bertram Scharpf <software@bertram-scharpf.de>.
|
9
5
|
All rights reserved.
|
data/README
CHANGED
@@ -1,4 +1,4 @@
|
|
1
|
-
= supplement 2.
|
1
|
+
= supplement 2.11 -- Useful Ruby enhancements
|
2
2
|
|
3
3
|
|
4
4
|
Some simple Ruby extensions.
|
@@ -64,6 +64,3 @@ Now here it is where I can just point to.
|
|
64
64
|
* Interval timer
|
65
65
|
* LockedFile
|
66
66
|
|
67
|
-
|
68
|
-
|
69
|
-
// vim:set ft=asciidoc :
|
data/lib/Rakefile
CHANGED
data/lib/mkrf_conf
CHANGED
@@ -10,21 +10,25 @@ Autorake.configure {
|
|
10
10
|
|
11
11
|
extending_ruby
|
12
12
|
|
13
|
-
if RUBY_VERSION < "2.
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
13
|
+
if RUBY_VERSION < "2.7" then
|
14
|
+
if RUBY_VERSION < "2.6" then
|
15
|
+
enable :dir_children
|
16
|
+
if RUBY_VERSION < "1.9.2" then
|
17
|
+
enable :array_select_bang
|
18
|
+
if RUBY_VERSION < "1.9" then
|
19
|
+
enable :string_ord
|
20
|
+
enable :string_clear
|
21
|
+
if RUBY_VERSION < "1.8.7" then
|
22
|
+
enable :array_index_with_block
|
23
|
+
enable :kernel_tap
|
24
|
+
enable :string_start_with
|
25
|
+
enable :thread_exclusive
|
26
|
+
end
|
25
27
|
end
|
26
28
|
end
|
27
29
|
end
|
30
|
+
else
|
31
|
+
enable :super_kwargs
|
28
32
|
end
|
29
33
|
|
30
34
|
if RUBY_VERSION < "1.9" then
|
data/lib/supplement.c
CHANGED
@@ -171,6 +171,24 @@ rb_krn_tap_bang( VALUE obj)
|
|
171
171
|
}
|
172
172
|
|
173
173
|
|
174
|
+
/*
|
175
|
+
* call-seq:
|
176
|
+
* with { |x| ... } -> obj
|
177
|
+
*
|
178
|
+
* Yields +x+ to the block.
|
179
|
+
* This difference to +tap+ is that the block's result will be returned.
|
180
|
+
*
|
181
|
+
* Use this to narrow your namespace.
|
182
|
+
*
|
183
|
+
*/
|
184
|
+
|
185
|
+
VALUE
|
186
|
+
rb_krn_with( VALUE obj)
|
187
|
+
{
|
188
|
+
return rb_yield( obj);
|
189
|
+
}
|
190
|
+
|
191
|
+
|
174
192
|
/*
|
175
193
|
* Document-class: NilClass
|
176
194
|
*/
|
@@ -1226,7 +1244,7 @@ rb_file_size( VALUE obj)
|
|
1226
1244
|
*/
|
1227
1245
|
|
1228
1246
|
VALUE
|
1229
|
-
rb_file_s_umask( int argc, VALUE *argv)
|
1247
|
+
rb_file_s_umask( int argc, VALUE *argv, VALUE file)
|
1230
1248
|
{
|
1231
1249
|
int omask = 0;
|
1232
1250
|
|
@@ -1291,7 +1309,7 @@ rb_dir_s_current( VALUE dir)
|
|
1291
1309
|
*/
|
1292
1310
|
|
1293
1311
|
VALUE
|
1294
|
-
rb_dir_s_mkdir_bang( int argc, VALUE *argv)
|
1312
|
+
rb_dir_s_mkdir_bang( int argc, VALUE *argv, VALUE dir)
|
1295
1313
|
{
|
1296
1314
|
VALUE path, modes;
|
1297
1315
|
|
@@ -1301,7 +1319,7 @@ rb_dir_s_mkdir_bang( int argc, VALUE *argv)
|
|
1301
1319
|
|
1302
1320
|
parent[ 0] = rb_file_dirname( path);
|
1303
1321
|
parent[ 1] = modes;
|
1304
|
-
rb_dir_s_mkdir_bang( 2, parent);
|
1322
|
+
rb_dir_s_mkdir_bang( 2, parent, dir);
|
1305
1323
|
if (!id_mkdir)
|
1306
1324
|
id_mkdir = rb_intern( "mkdir");
|
1307
1325
|
if (NIL_P(modes))
|
@@ -1500,6 +1518,7 @@ void Init_supplement( void)
|
|
1500
1518
|
rb_define_method( rb_mKernel, "tap", rb_krn_tap, 0);
|
1501
1519
|
#endif
|
1502
1520
|
rb_define_method( rb_mKernel, "tap!", rb_krn_tap_bang, 0);
|
1521
|
+
rb_define_method( rb_mKernel, "with", rb_krn_with, 0);
|
1503
1522
|
|
1504
1523
|
rb_define_method( rb_cNilClass, "notempty?", rb_nil_notempty_p, 0);
|
1505
1524
|
rb_define_method( rb_cNilClass, "nonzero?", rb_nil_notempty_p, 0);
|
data/lib/supplement.h
CHANGED
@@ -17,6 +17,7 @@ extern VALUE rb_obj_new_string( VALUE);
|
|
17
17
|
extern VALUE rb_obj_nil_if( VALUE, VALUE);
|
18
18
|
extern VALUE rb_krn_tap( VALUE);
|
19
19
|
extern VALUE rb_krn_tap_bang( VALUE);
|
20
|
+
extern VALUE rb_krn_with( VALUE);
|
20
21
|
|
21
22
|
extern VALUE rb_nil_notempty_p( VALUE);
|
22
23
|
extern VALUE rb_nil_each_line( VALUE);
|
@@ -64,9 +65,9 @@ extern VALUE rb_num_cbrt( VALUE);
|
|
64
65
|
extern VALUE rb_hash_notempty_p( VALUE);
|
65
66
|
|
66
67
|
extern VALUE rb_file_size( VALUE);
|
67
|
-
extern VALUE rb_file_s_umask( int, VALUE
|
68
|
+
extern VALUE rb_file_s_umask( int, VALUE *, VALUE);
|
68
69
|
extern VALUE rb_dir_s_current( VALUE);
|
69
|
-
extern VALUE rb_dir_s_mkdir_bang( int, VALUE
|
70
|
+
extern VALUE rb_dir_s_mkdir_bang( int, VALUE *, VALUE);
|
70
71
|
extern VALUE rb_dir_children( VALUE);
|
71
72
|
|
72
73
|
extern VALUE rb_match_begin( int, VALUE *, VALUE);
|
data/lib/supplement/date.rb
CHANGED
@@ -42,6 +42,48 @@ class Date
|
|
42
42
|
|
43
43
|
end
|
44
44
|
|
45
|
+
|
46
|
+
def workday_after n
|
47
|
+
r = self + n
|
48
|
+
case r.wday
|
49
|
+
when 0 then r += 1
|
50
|
+
when 6 then r += 2
|
51
|
+
end
|
52
|
+
r
|
53
|
+
end
|
54
|
+
|
55
|
+
def quarter
|
56
|
+
(month-1) / 3 + 1
|
57
|
+
end
|
58
|
+
|
59
|
+
def wstart
|
60
|
+
self - wday
|
61
|
+
end
|
62
|
+
|
63
|
+
def cwstart
|
64
|
+
self - (cwday-1)
|
65
|
+
end
|
66
|
+
|
67
|
+
def first_of_month
|
68
|
+
if day == 1 then
|
69
|
+
self
|
70
|
+
else
|
71
|
+
self.class.civil year, month, 1
|
72
|
+
end
|
73
|
+
end
|
74
|
+
|
75
|
+
def months_forward n
|
76
|
+
res = self
|
77
|
+
n.times { res = res.next_month }
|
78
|
+
res
|
79
|
+
end
|
80
|
+
|
81
|
+
def months_backward n
|
82
|
+
res = self
|
83
|
+
n.times { res = res.prev_month }
|
84
|
+
res
|
85
|
+
end
|
86
|
+
|
45
87
|
end
|
46
88
|
|
47
89
|
|
data/lib/supplement/locked.c
CHANGED
@@ -42,7 +42,11 @@ rb_locked_init( int argc, VALUE *argv, VALUE self)
|
|
42
42
|
#endif
|
43
43
|
int op;
|
44
44
|
|
45
|
+
#ifdef FEATURE_SUPER_KWARGS
|
46
|
+
rb_call_super_kw(argc, argv, RB_PASS_CALLED_KEYWORDS);
|
47
|
+
#else
|
45
48
|
rb_call_super( argc, argv);
|
49
|
+
#endif
|
46
50
|
GetOpenFile( self, fptr);
|
47
51
|
|
48
52
|
op = fptr->mode & FMODE_WRITABLE ? LOCK_EX : LOCK_SH;
|
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.11'
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Bertram Scharpf
|
8
|
-
autorequire:
|
8
|
+
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2020-
|
11
|
+
date: 2020-07-14 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: autorake
|
@@ -59,7 +59,7 @@ homepage: http://www.bertram-scharpf.de/software/supplement
|
|
59
59
|
licenses:
|
60
60
|
- BSD-2-Clause
|
61
61
|
metadata: {}
|
62
|
-
post_install_message:
|
62
|
+
post_install_message:
|
63
63
|
rdoc_options:
|
64
64
|
- "--charset"
|
65
65
|
- utf-8
|
@@ -80,7 +80,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
80
80
|
requirements:
|
81
81
|
- Ruby and the autorake gem
|
82
82
|
rubygems_version: 3.0.6
|
83
|
-
signing_key:
|
83
|
+
signing_key:
|
84
84
|
specification_version: 4
|
85
85
|
summary: Simple Ruby extensions
|
86
86
|
test_files: []
|