subunit 0.6.2 → 0.8.2
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 +35 -5
- 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: 34b54eb81abbfd37f7def79d99b84475dc1b94f1aef8fa575a62c5c8ecf78766
|
4
|
+
data.tar.gz: 9db454bb941bd1bf7c21deb81e9e0a5c8c618eec5bb00272719f3302c63227a6
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 42582c6fe9f108f9ea21c4e59618743f3515c82368bda8dd18ed806d9e39fb75a5353425337c130682214c2b84aac5b11c20597156ef3515be4df2077f30ed02
|
7
|
+
data.tar.gz: b3c218d7d4099d000af39426e89d7ec79d3c7a703af0e8a75994f1a444a597fc4a3aeba8603dcced3af0c3fd0ec902b81f1ddbb4f73a8039c00799d98458fd5c
|
checksums.yaml.gz.sig
CHANGED
Binary file
|
data.tar.gz.sig
CHANGED
Binary file
|
data/lib/subunit.rb
CHANGED
@@ -2,7 +2,30 @@
|
|
2
2
|
|
3
3
|
# file: subunit.rb
|
4
4
|
|
5
|
+
module SubunitFracture
|
6
|
+
|
7
|
+
refine Integer do
|
8
|
+
|
9
|
+
def strfunit(s)
|
10
|
+
Subunit.seconds(self).strfunit(s)
|
11
|
+
end
|
12
|
+
|
13
|
+
end
|
14
|
+
|
15
|
+
end
|
16
|
+
|
5
17
|
class Subunit
|
18
|
+
|
19
|
+
def self.seconds(val, units: nil)
|
20
|
+
new(units={minutes:60, hours:60, days:24}, seconds: val)
|
21
|
+
end
|
22
|
+
|
23
|
+
# e.g. Subunit.hms_to_seconds('5 minutes and 4 seconds')
|
24
|
+
# => 304
|
25
|
+
#
|
26
|
+
def self.hms_to_seconds(obj)
|
27
|
+
new(units={hours:60, minutes:60,seconds: 60, }, obj).to_i
|
28
|
+
end
|
6
29
|
|
7
30
|
attr_reader :to_a, :to_h, :to_i
|
8
31
|
|
@@ -11,14 +34,21 @@ class Subunit
|
|
11
34
|
@debug = false
|
12
35
|
|
13
36
|
@raw_units = raw_units
|
37
|
+
|
38
|
+
accumulate = ->(a) {
|
14
39
|
|
15
|
-
if obj.is_a? Array then
|
16
|
-
|
17
|
-
a = obj[0..-2]
|
18
40
|
len = raw_units.to_a.length
|
19
41
|
val = ([0]*(len-1) + a).slice(-(len), len).zip(raw_units.values)\
|
20
|
-
.inject(0) {|r,x| r + x
|
21
|
-
|
42
|
+
.inject(0) {|r,x| r * x[1] + x[0] }
|
43
|
+
}
|
44
|
+
|
45
|
+
if obj.is_a? String
|
46
|
+
|
47
|
+
@to_i = accumulate.call obj.split(/\D+/).map(&:to_i)
|
48
|
+
|
49
|
+
elsif obj.is_a? Array then
|
50
|
+
|
51
|
+
@to_i = accumulate.call obj
|
22
52
|
|
23
53
|
else
|
24
54
|
|
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.8.2
|
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-11-06 00:00:00.000000000 Z
|
39
39
|
dependencies: []
|
40
40
|
description:
|
41
41
|
email: james@jamesrobertson.eu
|
metadata.gz.sig
CHANGED
Binary file
|