subunit 0.2.6 → 0.5.1

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
- SHA1:
3
- metadata.gz: 1f64fbbcde90497a7b502324cd8a04c59633c069
4
- data.tar.gz: f31185d61bb1f973825936b9ad8173f7d28c7264
2
+ SHA256:
3
+ metadata.gz: e37055bb45fcbc79062342381126b101118521d8a567b27d3a35771774a9acd6
4
+ data.tar.gz: a4b86b164ccbff2d7cde9918a86edf8caacde4d744764d0260cc403547aa21e8
5
5
  SHA512:
6
- metadata.gz: ae6d43d47333699f3c8fba103f0f870a2144542673efb1c1d3f085239467bf78b85b04372acda20432a0faaf4c0fa1b72c707c31915d6abaa7e9950efd91f6e5
7
- data.tar.gz: 99da3d8e1fd6082699a63aa8f202170da91b91491be306e802ab2d1983e856c9286662dd01b8a80584bcb07dc20c47d5a01c72372616dcbfeb324220d33f0a9f
6
+ metadata.gz: 9d4da753cf22b01795e0b8a6b97586d028287285ebb3aaf0c7d35c05c623b99dd4384402537c7a1cb890e786ea6b22ec31ccbcd1fc1a4c93d4763861978162a5
7
+ data.tar.gz: c059d56a367ca18712cdcae402509fd5770c44d464ada14f035aaabb9d0c272d5e33dd3d88776abee4a56cf92834f40a91e13242af4455bd87d22f155f4d66b7
Binary file
data.tar.gz.sig CHANGED
Binary file
@@ -4,15 +4,39 @@
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
16
+ len = raw_units.to_a.length
17
+ @to_i = ([0]*(len-1) + a).slice(-(len), len).zip([60, 60, 1])\
18
+ .inject(0) {|r,x| r + x.inject(:*) }
19
+
20
+ else
21
+
22
+ raw_subunit = obj || 0
23
+ method((raw_units.class.to_s.downcase + '_units').to_sym)\
24
+ .call(raw_units, raw_subunit)
25
+
26
+ end
11
27
  end
12
28
 
13
- def to_s()
29
+ def to_s(omit: [], verbose: true)
30
+
31
+ if not verbose then
32
+ return self.to_a.reverse.take_while {|x| x > 0}.reverse\
33
+ .map {|x| "%02d" % x}.join(':')
34
+ end
14
35
 
15
- list = @to_h.to_a
36
+ h = @to_h
37
+ omit.each {|x| h.delete x}
38
+
39
+ list = h.to_a
16
40
  n = list.find {|_,v| v > 0 }
17
41
  a = list[list.index(n)..-1].map {|x|"%d %s" % x.reverse}
18
42
 
@@ -45,10 +69,16 @@ class Subunit
45
69
  end
46
70
 
47
71
  def hash_units(raw_units={}, u=nil)
72
+
48
73
  val, label = method((u.class.to_s.downcase + '_subunit').to_sym).call(u)
49
74
  units = multiply_units(raw_units.values).reverse
50
- @to_a = scan_units(units, val).map(&:to_i)
51
- @to_h = Hash[(raw_units.keys.reverse + [label]).zip(@to_a)]
75
+ puts 'units: ' + units.inspect if @debug
76
+ @to_a = a = scan_units(units, val).map(&:to_i)
77
+
78
+ puts 'a: ' + a.inspect if @debug
79
+ pairs = (raw_units.keys.reverse + [label]).reverse.take(a.length)\
80
+ .reverse.zip(a).select {|x| x[1] > 0}
81
+ @to_h = Hash[pairs]
52
82
  end
53
83
 
54
84
  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.6
4
+ version: 0.5.1
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-06-15 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