subunit 0.2.7 → 0.5.2

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
- SHA1:
3
- metadata.gz: 21744219dbd184038d789639756f77af54275d0b
4
- data.tar.gz: d937e1febc4828ca5a7349d50e0a83b0429bfe30
2
+ SHA256:
3
+ metadata.gz: d837735626ef70e32baf16141e470857f98e53ab2fd1c30b42f44fab34db16dd
4
+ data.tar.gz: ddde1aff01698812b3756d17305ba56962e8f6b536451adc1caa717c13e8bfe2
5
5
  SHA512:
6
- metadata.gz: 389b80f48026c750b2ac235705bc37a83a663bd5f638743363214fd654d6ef56ce1b3e6c9c022fb075f79b7fee1fb0e28400f5b2c6264ea07ce9b6ff10d03eaf
7
- data.tar.gz: 7cd1802d542f02530199757d88603ff784e1ce80ed7e13ad7b7ae9a4a3fb86080733ebbaa3f32e69933f6d0c6acd7ec1f6bd675feb3341ad630c400f65c0b662
6
+ metadata.gz: 20ac3ce0a0080f334d48041e9a0125243d8d218694cdc392e8e8055e2e7d0b3ced9c18d914a577f98f3a23418a73ce4be3b0be14e20d1d119ccb5cce8ad6b90e
7
+ data.tar.gz: 5ac471d4c506ab9eef77d782a801437a97c92f9933cc0ac3a41ceef61b9aa8eb84141c2a01fbbf67ba3a4ea18bf8c8c8772e2b2f023b8f0966725a8bf410109d
Binary file
data.tar.gz.sig CHANGED
Binary file
@@ -4,13 +4,45 @@
4
4
 
5
5
  class Subunit
6
6
 
7
- attr_reader :to_a, :to_h
7
+ attr_reader :to_a, :to_h, :to_i
8
8
 
9
- def initialize(raw_units=nil, raw_subunit=0)
10
- method((raw_units.class.to_s.downcase + '_units').to_sym).call(raw_units, raw_subunit)
9
+ def initialize(raw_units={}, obj)
10
+
11
+ @debug = false
12
+
13
+ if obj.is_a? Array then
14
+
15
+ a = obj[0..-2]
16
+ len = raw_units.to_a.length
17
+ val = ([0]*(len-1) + a).slice(-(len), len).zip(raw_units.values)\
18
+ .inject(0) {|r,x| r + x.inject(:*) }
19
+ @to_i = val + obj[-1]
20
+
21
+ else
22
+
23
+ raw_subunit = obj || 0
24
+ method((raw_units.class.to_s.downcase + '_units').to_sym)\
25
+ .call(raw_units, raw_subunit)
26
+
27
+ end
11
28
  end
12
29
 
13
- def to_s(omit: [])
30
+ def to_s(omit: [], verbose: true)
31
+
32
+ if not verbose then
33
+
34
+ r = self.to_a.reverse.take_while {|x| x > 0}.reverse\
35
+ .map {|x| "%02d" % x}.join(':')
36
+
37
+ if r.length < 2 then
38
+ return '00:00'
39
+ elsif r.length == 2
40
+ return '00:' + r
41
+ else
42
+ return r
43
+ end
44
+
45
+ end
14
46
 
15
47
  h = @to_h
16
48
  omit.each {|x| h.delete x}
@@ -48,10 +80,16 @@ class Subunit
48
80
  end
49
81
 
50
82
  def hash_units(raw_units={}, u=nil)
83
+
51
84
  val, label = method((u.class.to_s.downcase + '_subunit').to_sym).call(u)
52
85
  units = multiply_units(raw_units.values).reverse
53
- @to_a = scan_units(units, val).map(&:to_i)
54
- @to_h = Hash[(raw_units.keys.reverse + [label]).zip(@to_a)]
86
+ puts 'units: ' + units.inspect if @debug
87
+ @to_a = a = scan_units(units, val).map(&:to_i)
88
+
89
+ puts 'a: ' + a.inspect if @debug
90
+ pairs = (raw_units.keys.reverse + [label]).reverse.take(a.length)\
91
+ .reverse.zip(a).select {|x| x[1] > 0}
92
+ @to_h = Hash[pairs]
55
93
  end
56
94
 
57
95
  def array_units(raw_units=[], u=nil)
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.2.7
4
+ version: 0.5.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - James Robertson
@@ -10,28 +10,32 @@ bindir: bin
10
10
  cert_chain:
11
11
  - |
12
12
  -----BEGIN CERTIFICATE-----
13
- MIIDljCCAn6gAwIBAgIBATANBgkqhkiG9w0BAQUFADBIMRIwEAYDVQQDDAlnZW1t
14
- YXN0ZXIxHjAcBgoJkiaJk/IsZAEZFg5qYW1lc3JvYmVydHNvbjESMBAGCgmSJomT
15
- 8ixkARkWAmV1MB4XDTE2MTIyNTExNDQwNVoXDTE3MTIyNTExNDQwNVowSDESMBAG
16
- A1UEAwwJZ2VtbWFzdGVyMR4wHAYKCZImiZPyLGQBGRYOamFtZXNyb2JlcnRzb24x
17
- EjAQBgoJkiaJk/IsZAEZFgJldTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoC
18
- ggEBAN3LWwG+dRPJguokUCPxtB873JyfNUU/sYL96sRbk8xX+V2iLNwKOhupqCkh
19
- RtnG4DTjc1fGlaXs9cbukAjyFmjrv1+ZmMyTZebB8rJkD7BL0pj8KQgwWVJ05RYN
20
- cZNeoWM85ccdq2yYUzSSKc26x74HSroguaeodo3C6fbb2XGDJnS/Ffx3VR4OVfxl
21
- eBna6huFepp4BUnPn0PKqrgva1SXFPkFU3O9tcPB1QCMGC3RejdC9VLclzeJjGNC
22
- j3kQYsdFmcO8O9Ns4+iabdIcpWJbEapn493q80VCkI31G/jYzZ9NnP5/lcPDk7BK
23
- Zxv87spidXj/RFjOjoTt4wKjpzkCAwEAAaOBijCBhzAJBgNVHRMEAjAAMAsGA1Ud
24
- DwQEAwIEsDAdBgNVHQ4EFgQUWTh7hU/yB/3up7nOiIh0dpOzNjEwJgYDVR0RBB8w
25
- HYEbZ2VtbWFzdGVyQGphbWVzcm9iZXJ0c29uLmV1MCYGA1UdEgQfMB2BG2dlbW1h
26
- c3RlckBqYW1lc3JvYmVydHNvbi5ldTANBgkqhkiG9w0BAQUFAAOCAQEAhZz/3Gi0
27
- 1qrGlu+UUVk7LL3zKSqmldcVZs7Rb8P4Tk1zbqNgrwA2xmTOlmAkeOLSHQ0djjnZ
28
- z+V5uNZ2RZ1qe5jnMkR34dkQrQ4aJIHABaMIiXATR+A1xY9bGiwFaoqQdqCXW8D9
29
- arSsyB4V/BODb8XG9e0OUYVj2yfJgWPELKXBc7N7EiQ+pxZbCWMVKJplXMspt2vm
30
- MktgVQiDwDUH523sDXFcWBOpxGqCTd8Rn9pHeeR5O0TOGv+HhKQwp96/q3BXWJYV
31
- jRLTmInXW6D2qCYhnTg1lnKahOHZwk3PSyvv3fUBYiwNQJBumSY95yvIoZpFjRNc
32
- UlPQMCJOB3GcUw==
13
+ MIIEXjCCAsagAwIBAgIBATANBgkqhkiG9w0BAQsFADAsMSowKAYDVQQDDCFnZW1t
14
+ YXN0ZXIvREM9amFtZXNyb2JlcnRzb24vREM9ZXUwHhcNMjAwNjExMTMxNTI0WhcN
15
+ MjEwNjExMTMxNTI0WjAsMSowKAYDVQQDDCFnZW1tYXN0ZXIvREM9amFtZXNyb2Jl
16
+ cnRzb24vREM9ZXUwggGiMA0GCSqGSIb3DQEBAQUAA4IBjwAwggGKAoIBgQDYDasD
17
+ frBDuzdjPpkYhCiMX91fqK5KPRp1SD8Wms+WXaLYTqyK2bWSWarsGVuYmKculwT0
18
+ Am6q5L99yRPvYJmxNcd42V2+FuYmPtXTwi4aeiV8uuIFHqABp73fv6EYFdIfrRvC
19
+ Ws0ZH5+xjTbPNoewXWfi6JeXuWiM3aA89g8AX9PHaZY9lNN2cNC77kkxbcmDkwCK
20
+ H4aOIlbscw85T4L7neA78b01WaNcGr6TnQeUYTrae7viihb3E1CQVWcg/N4e3yMV
21
+ km1eArbQYCnp4nkRyonsNTlUoWc0tVxF/ilemZBXiMaubNi81CVEIQHHjDVNbfyS
22
+ +6mFmwKhII55CqyFq+NwqLNgVUVxTnXEFJvKAhjWbnUUmnXgtsk9cHzyMaFl4YOK
23
+ Fx8RLiXqIREfnNmSg4P5gpYnAcm58UcXoraZiAJUKA6ntU1FIOrShzHj8IqtXvRu
24
+ FDbS8jAhda67n1gbVUMs2OY/sogmFGVKFO5xVarD35/BtzgfRNQK1wU4Yy8CAwEA
25
+ AaOBijCBhzAJBgNVHRMEAjAAMAsGA1UdDwQEAwIEsDAdBgNVHQ4EFgQUOf0mcfDe
26
+ dXRdAXtTj85vBERBHqUwJgYDVR0RBB8wHYEbZ2VtbWFzdGVyQGphbWVzcm9iZXJ0
27
+ c29uLmV1MCYGA1UdEgQfMB2BG2dlbW1hc3RlckBqYW1lc3JvYmVydHNvbi5ldTAN
28
+ BgkqhkiG9w0BAQsFAAOCAYEAhaQ9BCV0ZKQeCdslSmkOLWKzKk6rffiOYUTQaqdv
29
+ FxLZb7I7ug6uzZdtdb7Y7yGgXes+Z0zR6VhNSwWlpFcHSIznWYJh5e6ET/3lDetk
30
+ wk204TgTuLDPA3USRS5BKWKi1sdqnWXJVLynJCZPIyV7ilbFKSl77Wa8IwWjyj7g
31
+ F05N7bMe3g0vECYHFBJJWCfy2d6jcv0/GG0BwEsLf91LwVg5bIAJ481EaWaKseWR
32
+ PAmD0vI08ssZY68aO08XgHP1JTLDXYeTqMS5BGeFWCkKhjlLnH+pamLB6lTD4ojL
33
+ uBZU7l7zO3ksoWsWIIp1bhvSZHE5sCaZmOKXPSN4gW065ieajGR0Ccv7k6JZK8pC
34
+ skCxe0yd2TnDrW5R51ocplcGDzryzTdvzaI4af8OQUWwshF+Ad7x4J7jdyu3WK1B
35
+ HowcHg4GymtLLITCF/QtA5tta5SmHAca1POGncsO9QiramFQ9S3Q4O4wcjboVJOp
36
+ SSxk4InmYoY9Cl2GVQ+d9owo
33
37
  -----END CERTIFICATE-----
34
- date: 2017-08-24 00:00:00.000000000 Z
38
+ date: 2020-07-27 00:00:00.000000000 Z
35
39
  dependencies: []
36
40
  description:
37
41
  email: james@jamesrobertson.eu
@@ -59,9 +63,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
59
63
  - !ruby/object:Gem::Version
60
64
  version: '0'
61
65
  requirements: []
62
- rubyforge_project:
63
- rubygems_version: 2.6.8
66
+ rubygems_version: 3.0.3
64
67
  signing_key:
65
68
  specification_version: 4
66
- summary: subunit
69
+ summary: Input a raw unit and it returns the denomination.
67
70
  test_files: []
metadata.gz.sig CHANGED
Binary file