oslg 0.2.8 → 0.2.9
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/lib/oslg/oslog.rb +114 -78
- data/lib/oslg/version.rb +1 -1
- metadata +3 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: f6af1c266df1a21c24e1f810ae3a13ea4b8cee514ef522860f67c94e0108faca
|
4
|
+
data.tar.gz: ecc6bdccad1d9e3de77eb27f17e9d63b82aa290f982dd3a525f786de576341d3
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 107bf656388646393a97f60a3a49ddaf3f23764c4f8f91445d131813ec33c53c699a7f25f2e6f90058f23faa93eeb1d5abdeb48f6260ae36f99402a4ab91b4cd
|
7
|
+
data.tar.gz: 5a4bd5a3de4d1d0e96c274e31c63cdee2fec3adc470c88881225ebc475d8b91362585766197dd37110565f7480792bfd2523423bba6847158e2c16ad54bb5e05
|
data/lib/oslg/oslog.rb
CHANGED
@@ -29,14 +29,35 @@
|
|
29
29
|
# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
30
30
|
|
31
31
|
module OSlg
|
32
|
-
DEBUG
|
33
|
-
INFO
|
34
|
-
WARN
|
35
|
-
ERROR
|
36
|
-
FATAL
|
32
|
+
DEBUG = 1 # e.g. for debugging e.g. "argument String? expecting Integer"
|
33
|
+
INFO = 2 # e.g. informative e.g. "success! no errors, no warnings"
|
34
|
+
WARN = 3 # e.g. warnings e.g. "partial success, see non-fatal warnings"
|
35
|
+
ERROR = 4 # e.g. erros e.g. "partial success, see non-fatal errors"
|
36
|
+
FATAL = 5 # e.g. failures e.g. "stopping! encountered fatal errors"
|
37
37
|
|
38
38
|
# each log is a Hash with keys :level (Integer) and :message (String)
|
39
|
-
@@logs
|
39
|
+
@@logs = []
|
40
|
+
|
41
|
+
# preset strings matching log levels
|
42
|
+
@@tag = [
|
43
|
+
"", # (empty string)
|
44
|
+
"DEBUG", # DEBUG
|
45
|
+
"INFO", # INFO
|
46
|
+
"WARNING", # WARNING
|
47
|
+
"ERROR", # ERROR
|
48
|
+
"FATAL" # FATAL
|
49
|
+
].freeze
|
50
|
+
|
51
|
+
# preset strings matching log status
|
52
|
+
@@msg = [
|
53
|
+
"", # (empty string)
|
54
|
+
"Debugging ...", # DEBUG
|
55
|
+
"Success! No errors, no warnings", # INFO
|
56
|
+
"Partial success, raised non-fatal warnings", # WARNING
|
57
|
+
"Partial success, encountered non-fatal errors", # ERROR
|
58
|
+
"Failure, triggered fatal errors" # FATAL
|
59
|
+
].freeze
|
60
|
+
|
40
61
|
@@level = INFO # initial log level
|
41
62
|
@@status = 0 # initial status
|
42
63
|
|
@@ -51,7 +72,7 @@ module OSlg
|
|
51
72
|
##
|
52
73
|
# Returns current log level.
|
53
74
|
#
|
54
|
-
# @return [
|
75
|
+
# @return [DEBUG, INFO, WARN, ERROR, FATAL] log level
|
55
76
|
def level
|
56
77
|
@@level
|
57
78
|
end
|
@@ -59,7 +80,7 @@ module OSlg
|
|
59
80
|
##
|
60
81
|
# Returns current log status.
|
61
82
|
#
|
62
|
-
# @return [
|
83
|
+
# @return [0, DEBUG, INFO, WARN, ERROR, FATAL] log status
|
63
84
|
def status
|
64
85
|
@@status
|
65
86
|
end
|
@@ -67,7 +88,7 @@ module OSlg
|
|
67
88
|
##
|
68
89
|
# Returns whether current status is DEBUG.
|
69
90
|
#
|
70
|
-
# @return [Bool]
|
91
|
+
# @return [Bool] whether current log status is DEBUG
|
71
92
|
def debug?
|
72
93
|
@@status == DEBUG
|
73
94
|
end
|
@@ -75,7 +96,7 @@ module OSlg
|
|
75
96
|
##
|
76
97
|
# Returns whether current status is INFO.
|
77
98
|
#
|
78
|
-
# @return [Bool]
|
99
|
+
# @return [Bool] whether current log status is INFO
|
79
100
|
def info?
|
80
101
|
@@status == INFO
|
81
102
|
end
|
@@ -83,7 +104,7 @@ module OSlg
|
|
83
104
|
##
|
84
105
|
# Returns whether current status is WARN.
|
85
106
|
#
|
86
|
-
# @return [Bool]
|
107
|
+
# @return [Bool] whether current log status is WARN
|
87
108
|
def warn?
|
88
109
|
@@status == WARN
|
89
110
|
end
|
@@ -91,7 +112,7 @@ module OSlg
|
|
91
112
|
##
|
92
113
|
# Returns whether current status is ERROR.
|
93
114
|
#
|
94
|
-
# @return [Bool]
|
115
|
+
# @return [Bool] whether current log status is ERROR
|
95
116
|
def error?
|
96
117
|
@@status == ERROR
|
97
118
|
end
|
@@ -99,17 +120,68 @@ module OSlg
|
|
99
120
|
##
|
100
121
|
# Returns whether current status is FATAL.
|
101
122
|
#
|
102
|
-
# @return [Bool]
|
123
|
+
# @return [Bool] whether current log status is FATAL
|
103
124
|
def fatal?
|
104
125
|
@@status == FATAL
|
105
126
|
end
|
106
127
|
|
128
|
+
##
|
129
|
+
# Returns preset OSlg string that matches log level.
|
130
|
+
#
|
131
|
+
# @param lvl [#to_i] 0, DEBUG, INFO, WARN, ERROR or FATAL
|
132
|
+
#
|
133
|
+
# @return [String] preset OSlg tag (see @@tag)
|
134
|
+
def tag(lvl)
|
135
|
+
return "" unless lvl.respond_to?(:to_i)
|
136
|
+
|
137
|
+
lvl = lvl.to_i
|
138
|
+
return "" if lvl < DEBUG
|
139
|
+
return "" if lvl > FATAL
|
140
|
+
|
141
|
+
@@tag[lvl]
|
142
|
+
|
143
|
+
end
|
144
|
+
|
145
|
+
##
|
146
|
+
# Returns preset OSlg message that matches log status.
|
147
|
+
#
|
148
|
+
# @param stat [Integer] 0, DEBUG, INFO, WARN, ERROR or FATAL
|
149
|
+
#
|
150
|
+
# @return [String] preset OSlg message (see @@msg)
|
151
|
+
def msg(stat)
|
152
|
+
return "" unless stat.respond_to?(:to_i)
|
153
|
+
|
154
|
+
stat = stat.to_i
|
155
|
+
return "" if stat < DEBUG
|
156
|
+
return "" if stat > FATAL
|
157
|
+
|
158
|
+
@@msg[stat]
|
159
|
+
end
|
160
|
+
|
161
|
+
##
|
162
|
+
# Converts object to String and trims if necessary.
|
163
|
+
#
|
164
|
+
# @param txt [#to_s] a stringable object
|
165
|
+
# @param length [#to_i] maximum return string length
|
166
|
+
#
|
167
|
+
# @return [String] a trimmed message string (empty unless stringable)
|
168
|
+
def trim(txt = "", length = 60)
|
169
|
+
length = 60 unless length.respond_to?(:to_i)
|
170
|
+
length = length.to_i if length.respond_to?(:to_i)
|
171
|
+
return "" unless txt.respond_to?(:to_s)
|
172
|
+
|
173
|
+
txt = txt.to_s.strip
|
174
|
+
txt = txt[0...length] + " ..." if txt.length > length
|
175
|
+
|
176
|
+
txt
|
177
|
+
end
|
178
|
+
|
107
179
|
##
|
108
180
|
# Resets level, if lvl (input) is within accepted range.
|
109
181
|
#
|
110
182
|
# @param lvl [#to_i] DEBUG, INFO, WARN, ERROR or FATAL
|
111
183
|
#
|
112
|
-
# @return [
|
184
|
+
# @return [DEBUG, INFO, WARN, ERROR, FATAL] updated/current level
|
113
185
|
def reset(lvl = DEBUG)
|
114
186
|
return @@level unless lvl.respond_to?(:to_i)
|
115
187
|
|
@@ -129,13 +201,13 @@ module OSlg
|
|
129
201
|
# @example A user warning
|
130
202
|
# log(WARN, "Surface area < 100cm2")
|
131
203
|
#
|
132
|
-
# @return [
|
204
|
+
# @return [DEBUG, INFO, WARN, ERROR, FATAL] updated/current status
|
133
205
|
def log(lvl = DEBUG, message = "")
|
134
206
|
return @@status unless lvl.respond_to?(:to_i)
|
135
207
|
return @@status unless message.respond_to?(:to_s)
|
136
208
|
|
137
209
|
lvl = lvl.to_i
|
138
|
-
message = message.to_s
|
210
|
+
message = message.to_s
|
139
211
|
return @@status if lvl < DEBUG
|
140
212
|
return @@status if lvl > FATAL
|
141
213
|
return @@status if lvl < @@level
|
@@ -152,7 +224,7 @@ module OSlg
|
|
152
224
|
# @param id [#to_s] 'invalid object' identifier
|
153
225
|
# @param mth [#to_s] calling method identifier
|
154
226
|
# @param ord [#to_i] calling method argument order number of obj (optional)
|
155
|
-
# @param lvl [#to_i] DEBUG, INFO, WARN, ERROR or FATAL
|
227
|
+
# @param lvl [#to_i] DEBUG, INFO, WARN, ERROR or FATAL (optional)
|
156
228
|
# @param res what to return (optional)
|
157
229
|
#
|
158
230
|
# @example An invalid argument, logging a FATAL error, returning FALSE
|
@@ -166,23 +238,18 @@ module OSlg
|
|
166
238
|
return res unless ord.respond_to?(:to_i)
|
167
239
|
return res unless lvl.respond_to?(:to_i)
|
168
240
|
|
169
|
-
id = id.to_s.strip
|
170
|
-
mth = mth.to_s.strip
|
171
241
|
ord = ord.to_i
|
172
242
|
lvl = lvl.to_i
|
173
|
-
|
174
|
-
|
243
|
+
id = trim(id)
|
244
|
+
mth = trim(mth)
|
175
245
|
return res if id.empty?
|
176
|
-
|
177
|
-
mth = mth[0...60] + " ..." if mth.length > 60
|
178
246
|
return res if mth.empty?
|
247
|
+
return res if lvl < DEBUG
|
248
|
+
return res if lvl > FATAL
|
179
249
|
|
180
250
|
msg = "Invalid '#{id}' "
|
181
251
|
msg += "arg ##{ord} " if ord > 0
|
182
252
|
msg += "(#{mth})"
|
183
|
-
return res if lvl < DEBUG
|
184
|
-
return res if lvl > FATAL
|
185
|
-
|
186
253
|
log(lvl, msg)
|
187
254
|
|
188
255
|
res
|
@@ -197,7 +264,7 @@ module OSlg
|
|
197
264
|
# @param obj the object to validate
|
198
265
|
# @param cl [Class] target class
|
199
266
|
# @param mth [#to_s] calling method identifier (optional)
|
200
|
-
# @param lvl [#to_i] DEBUG, INFO, WARN, ERROR or FATAL
|
267
|
+
# @param lvl [#to_i] DEBUG, INFO, WARN, ERROR or FATAL (optional)
|
201
268
|
# @param res what to return (optional)
|
202
269
|
#
|
203
270
|
# @example A mismatched argument instance/class
|
@@ -207,26 +274,20 @@ module OSlg
|
|
207
274
|
# @return [nil] if user hasn't provided an object to return
|
208
275
|
def mismatch(id = "", obj = nil, cl = nil, mth = "", lvl = DEBUG, res = nil)
|
209
276
|
return res unless id.respond_to?(:to_s)
|
277
|
+
return res unless mth.respond_to?(:to_s)
|
210
278
|
return res unless cl.is_a?(Class)
|
211
279
|
return res if obj.is_a?(cl)
|
212
|
-
return res unless mth.respond_to?(:to_s)
|
213
280
|
return res unless lvl.respond_to?(:to_i)
|
214
281
|
|
215
|
-
id = id.to_s.strip
|
216
|
-
mth = mth.to_s.strip
|
217
282
|
lvl = lvl.to_i
|
218
|
-
|
219
|
-
|
283
|
+
id = trim(id)
|
284
|
+
mth = trim(mth)
|
220
285
|
return res if id.empty?
|
221
|
-
|
222
|
-
mth = mth[0...60] + " ..." if mth.length > 60
|
223
286
|
return res if mth.empty?
|
224
|
-
|
225
|
-
msg = "'#{id}' #{obj.class}? expecting #{cl} (#{mth})"
|
226
287
|
return res if lvl < DEBUG
|
227
288
|
return res if lvl > FATAL
|
228
289
|
|
229
|
-
log(lvl,
|
290
|
+
log(lvl, "'#{id}' #{obj.class}? expecting #{cl} (#{mth})")
|
230
291
|
|
231
292
|
res
|
232
293
|
end
|
@@ -239,7 +300,7 @@ module OSlg
|
|
239
300
|
# @param hsh [Hash] hash to validate
|
240
301
|
# @param key missing key
|
241
302
|
# @param mth [#to_s] calling method identifier
|
242
|
-
# @param lvl [#to_i] DEBUG, INFO, WARN, ERROR or FATAL
|
303
|
+
# @param lvl [#to_i] DEBUG, INFO, WARN, ERROR or FATAL (optional)
|
243
304
|
# @param res what to return (optional)
|
244
305
|
#
|
245
306
|
# @example A missing Hash key
|
@@ -254,21 +315,15 @@ module OSlg
|
|
254
315
|
return res unless mth.respond_to?(:to_s)
|
255
316
|
return res unless lvl.respond_to?(:to_i)
|
256
317
|
|
257
|
-
id = id.to_s.strip
|
258
|
-
mth = mth.to_s.strip
|
259
318
|
lvl = lvl.to_i
|
260
|
-
|
261
|
-
|
319
|
+
id = trim(id)
|
320
|
+
mth = trim(mth)
|
262
321
|
return res if id.empty?
|
263
|
-
|
264
|
-
mth = mth[0...60] + " ..." if mth.length > 60
|
265
322
|
return res if mth.empty?
|
266
|
-
|
267
|
-
msg = "Missing '#{key}' key in '#{id}' Hash (#{mth})"
|
268
323
|
return res if lvl < DEBUG
|
269
324
|
return res if lvl > FATAL
|
270
325
|
|
271
|
-
log(lvl,
|
326
|
+
log(lvl, "Missing '#{key}' key in '#{id}' Hash (#{mth})")
|
272
327
|
|
273
328
|
res
|
274
329
|
end
|
@@ -278,7 +333,7 @@ module OSlg
|
|
278
333
|
#
|
279
334
|
# @param id [#to_s] empty object identifier
|
280
335
|
# @param mth [#to_s] calling method identifier
|
281
|
-
# @param lvl [#to_i] DEBUG, INFO, WARN, ERROR or FATAL
|
336
|
+
# @param lvl [#to_i] DEBUG, INFO, WARN, ERROR or FATAL (optional)
|
282
337
|
# @param res what to return (optional)
|
283
338
|
#
|
284
339
|
# @example An uninitialized variable, logging an ERROR, returning FALSE
|
@@ -291,21 +346,15 @@ module OSlg
|
|
291
346
|
return res unless mth.respond_to?(:to_s)
|
292
347
|
return res unless lvl.respond_to?(:to_i)
|
293
348
|
|
294
|
-
id = id.to_s.strip
|
295
|
-
mth = mth.to_s.strip
|
296
349
|
lvl = lvl.to_i
|
297
|
-
|
298
|
-
|
350
|
+
id = trim(id)
|
351
|
+
mth = trim(mth)
|
299
352
|
return res if id.empty?
|
300
|
-
|
301
|
-
mth = mth[0...60] + " ..." if mth.length > 60
|
302
353
|
return res if mth.empty?
|
303
|
-
|
304
|
-
msg = "Empty '#{id}' (#{mth})"
|
305
354
|
return res if lvl < DEBUG
|
306
355
|
return res if lvl > FATAL
|
307
356
|
|
308
|
-
log(lvl,
|
357
|
+
log(lvl, "Empty '#{id}' (#{mth})")
|
309
358
|
|
310
359
|
res
|
311
360
|
end
|
@@ -315,7 +364,7 @@ module OSlg
|
|
315
364
|
#
|
316
365
|
# @param id [#to_s] zero object identifier
|
317
366
|
# @param mth [#to_s] calling method identifier
|
318
|
-
# @param lvl [#to_i] DEBUG, INFO, WARN, ERROR or FATAL
|
367
|
+
# @param lvl [#to_i] DEBUG, INFO, WARN, ERROR or FATAL (optional)
|
319
368
|
# @param res what to return (optional)
|
320
369
|
#
|
321
370
|
# @example A near-zero variable
|
@@ -328,22 +377,16 @@ module OSlg
|
|
328
377
|
return res unless mth.respond_to?(:to_s)
|
329
378
|
return res unless lvl.respond_to?(:to_i)
|
330
379
|
|
331
|
-
id = id.to_s.strip
|
332
|
-
mth = mth.to_s.strip
|
333
380
|
ord = ord.to_i
|
334
381
|
lvl = lvl.to_i
|
335
|
-
|
336
|
-
|
382
|
+
id = trim(id)
|
383
|
+
mth = trim(mth)
|
337
384
|
return res if id.empty?
|
338
|
-
|
339
|
-
mth = mth[0...60] + " ..." if mth.length > 60
|
340
385
|
return res if mth.empty?
|
341
|
-
|
342
|
-
msg = "Zero '#{id}' (#{mth})"
|
343
386
|
return res if lvl < DEBUG
|
344
387
|
return res if lvl > FATAL
|
345
388
|
|
346
|
-
log(lvl,
|
389
|
+
log(lvl, "Zero '#{id}' (#{mth})")
|
347
390
|
|
348
391
|
res
|
349
392
|
end
|
@@ -366,22 +409,15 @@ module OSlg
|
|
366
409
|
return res unless mth.respond_to?(:to_s)
|
367
410
|
return res unless lvl.respond_to?(:to_i)
|
368
411
|
|
369
|
-
id = id.to_s.strip
|
370
|
-
mth = mth.to_s.strip
|
371
|
-
ord = ord.to_i
|
372
412
|
lvl = lvl.to_i
|
373
|
-
|
374
|
-
|
413
|
+
id = trim(id)
|
414
|
+
mth = trim(mth)
|
375
415
|
return res if id.empty?
|
376
|
-
|
377
|
-
mth = mth[0...60] + " ..." if mth.length > 60
|
378
416
|
return res if mth.empty?
|
379
|
-
|
380
|
-
msg = "Negative '#{id}' (#{mth})"
|
381
417
|
return res if lvl < DEBUG
|
382
418
|
return res if lvl > FATAL
|
383
419
|
|
384
|
-
log(lvl,
|
420
|
+
log(lvl, "Negative '#{id}' (#{mth})")
|
385
421
|
|
386
422
|
res
|
387
423
|
end
|
@@ -389,7 +425,7 @@ module OSlg
|
|
389
425
|
##
|
390
426
|
# Resets log status and entries.
|
391
427
|
#
|
392
|
-
# @return [Integer] current level
|
428
|
+
# @return [Integer] current log level
|
393
429
|
def clean!
|
394
430
|
@@status = 0
|
395
431
|
@@logs = []
|
data/lib/oslg/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: oslg
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.2.
|
4
|
+
version: 0.2.9
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Denis Bourgeois
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2023-08-
|
11
|
+
date: 2023-08-24 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -76,7 +76,7 @@ licenses:
|
|
76
76
|
- BSD-3-Clause
|
77
77
|
metadata:
|
78
78
|
homepage_uri: https://github.com/rd2/oslg
|
79
|
-
source_code_uri: https://github.com/rd2/oslg/tree/v0.2.
|
79
|
+
source_code_uri: https://github.com/rd2/oslg/tree/v0.2.9
|
80
80
|
bug_tracker_uri: https://github.com/rd2/oslg/issues
|
81
81
|
post_install_message:
|
82
82
|
rdoc_options: []
|