subunit 0.5.1 → 0.6.3
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- checksums.yaml.gz.sig +0 -0
- data.tar.gz.sig +0 -0
- data/lib/subunit.rb +58 -4
- metadata +2 -2
- metadata.gz.sig +0 -0
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: c7a64793ef4eba6cac4a1531741c33b7fa51aeda34b953aef7d9aa50ec5da41c
|
4
|
+
data.tar.gz: b04dcb7003593336c817eda62f688bfea39ddc202f2ca475bfd7f90773692d80
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: bd7d5da340137fe3d9f5e486f535df23693e16dfa4988e2e7716549623128bde2c8e17300dd2870cd96636061d007c44181256d952d5fc89022904f76ccc13eb
|
7
|
+
data.tar.gz: 60c40f49bcb37b9dffa884978162eb633823df1f98c396772975aba91f0d1267d1403604df532ffd422832d2d4c74e2399a3b4c9c9dd8c421fea3e7c669a3825
|
checksums.yaml.gz.sig
CHANGED
Binary file
|
data.tar.gz.sig
CHANGED
Binary file
|
data/lib/subunit.rb
CHANGED
@@ -3,6 +3,10 @@
|
|
3
3
|
# file: subunit.rb
|
4
4
|
|
5
5
|
class Subunit
|
6
|
+
|
7
|
+
def self.seconds(val)
|
8
|
+
new(units={minutes:60, hours:60}, seconds: val)
|
9
|
+
end
|
6
10
|
|
7
11
|
attr_reader :to_a, :to_h, :to_i
|
8
12
|
|
@@ -10,12 +14,15 @@ class Subunit
|
|
10
14
|
|
11
15
|
@debug = false
|
12
16
|
|
17
|
+
@raw_units = raw_units
|
18
|
+
|
13
19
|
if obj.is_a? Array then
|
14
20
|
|
15
|
-
a = obj
|
21
|
+
a = obj[0..-2]
|
16
22
|
len = raw_units.to_a.length
|
17
|
-
|
23
|
+
val = ([0]*(len-1) + a).slice(-(len), len).zip(raw_units.values)\
|
18
24
|
.inject(0) {|r,x| r + x.inject(:*) }
|
25
|
+
@to_i = val + obj[-1]
|
19
26
|
|
20
27
|
else
|
21
28
|
|
@@ -26,11 +33,58 @@ class Subunit
|
|
26
33
|
end
|
27
34
|
end
|
28
35
|
|
36
|
+
# usage: Subunit.new(units={minutes:60, hours:60}, seconds: 661)\
|
37
|
+
# .strfunit("%x") #=> 11m 1s
|
38
|
+
#
|
39
|
+
# %x e.g. 11m 1s
|
40
|
+
# %X e.g. 11 minutes 1 second
|
41
|
+
# %c e.g. 00:11:01
|
42
|
+
#
|
43
|
+
def strfunit(s)
|
44
|
+
|
45
|
+
s.sub!('%x') do |x|
|
46
|
+
to_h.map {|label, val| val.to_s + label[0]}.join(' ')
|
47
|
+
end
|
48
|
+
|
49
|
+
s.sub!('%X') do |x|
|
50
|
+
|
51
|
+
to_h.map do |label, val|
|
52
|
+
|
53
|
+
next if val == 0
|
54
|
+
label2 = val > 1 ? label.to_s : label.to_s.sub(/s$/,'')
|
55
|
+
val.to_s + ' ' + label2
|
56
|
+
|
57
|
+
end.compact.join(' ')
|
58
|
+
|
59
|
+
end
|
60
|
+
|
61
|
+
s.sub!('%c') do |x|
|
62
|
+
|
63
|
+
a = @raw_units.values.reverse
|
64
|
+
a << a[-1]
|
65
|
+
|
66
|
+
fmt = a.map {|v| "%0" + v.to_s.length.to_s + "d"}.join(":")
|
67
|
+
fmt % to_a
|
68
|
+
end
|
69
|
+
|
70
|
+
s
|
71
|
+
end
|
72
|
+
|
29
73
|
def to_s(omit: [], verbose: true)
|
30
74
|
|
31
75
|
if not verbose then
|
32
|
-
|
33
|
-
|
76
|
+
|
77
|
+
r = self.to_a.reverse.take_while {|x| x > 0}.reverse\
|
78
|
+
.map {|x| "%02d" % x}.join(':')
|
79
|
+
|
80
|
+
if r.length < 2 then
|
81
|
+
return '00:00'
|
82
|
+
elsif r.length == 2
|
83
|
+
return '00:' + r
|
84
|
+
else
|
85
|
+
return r
|
86
|
+
end
|
87
|
+
|
34
88
|
end
|
35
89
|
|
36
90
|
h = @to_h
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: subunit
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.6.3
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- James Robertson
|
@@ -35,7 +35,7 @@ cert_chain:
|
|
35
35
|
HowcHg4GymtLLITCF/QtA5tta5SmHAca1POGncsO9QiramFQ9S3Q4O4wcjboVJOp
|
36
36
|
SSxk4InmYoY9Cl2GVQ+d9owo
|
37
37
|
-----END CERTIFICATE-----
|
38
|
-
date: 2020-
|
38
|
+
date: 2020-09-14 00:00:00.000000000 Z
|
39
39
|
dependencies: []
|
40
40
|
description:
|
41
41
|
email: james@jamesrobertson.eu
|
metadata.gz.sig
CHANGED
Binary file
|