popro 0.2.3 → 0.2.4

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
2
  SHA256:
3
- metadata.gz: fc8a91c38e9a66e7b5de492fe92f5def2d044fc118a3dfc25ef826ccadc8692c
4
- data.tar.gz: 00fc035091657744a3bc7110b91f1cfb49192d07afce1a0866e20745b038c368
3
+ metadata.gz: 8c3d8c8dba5a532d23b95582322983b844243a72679bff15acce69933c106ea2
4
+ data.tar.gz: ea5170d62aa990167c89d0fee9d7ee07d1cb1902f0a8e64f1920abbb523ed446
5
5
  SHA512:
6
- metadata.gz: f0c02a15ce252052573de441631e8665f8c2fde13e27162287a01739df908283514f8fa0eb98056e179c2d6ac139aac89bb4a603abd45ae1d9333d960f2de5e4
7
- data.tar.gz: 989554d6b7dcf42c8db7a0a1b240b440acf07fd1b965e861486361fe7627fe4c65d37ae8df951daeae37445d689239397613a34f1e6231d11e5addbccdaf586a
6
+ metadata.gz: 9023ad0fbf774e02fab5dc99df4720365a742c651469342bed04326fa88a34dd7e91d04830f50a4d28ac28a677e660a93715b6b51688b17668933cf0bdc3276e
7
+ data.tar.gz: b79e9a485d34aaab14bd7674a3adfad80305ba9c87b0ff8a7cd1981ec5dd6afeaef263efab503cef06065662c5d1ad296e7bec3c49c56e21117028fb691a5d7e
data/CHANGELOG CHANGED
@@ -1,3 +1,4 @@
1
+ 0.2.4 add support for `Popro.(un)silence!` atomic silencing, better duration formatting
1
2
  0.2.3 add support for `Popro.silenced`
2
3
  0.2.2 add gonna and each_gonna, add Callback Indicator
3
4
  0.2.1 add support for estimation and re-use of default indicator with added concatted formatters
@@ -35,6 +35,16 @@ module Popro
35
35
  @_is_silenced = prev_silenced
36
36
  end
37
37
 
38
+ def self.silence!
39
+ @_is_silenced = true
40
+ self
41
+ end
42
+
43
+ def self.unsilence!
44
+ @_is_silenced = false
45
+ self
46
+ end
47
+
38
48
  def self.silenced?
39
49
  @_is_silenced
40
50
  end
@@ -63,6 +63,15 @@ module Popro
63
63
 
64
64
  private
65
65
 
66
+ UNITS = [
67
+ [60, '%02ds'],
68
+ [60, '%02dm'],
69
+ [24, '%02dh'],
70
+ [7, '%d days, '],
71
+ [52, '%d weeks, '],
72
+ [nil, '%d years, ']
73
+ ].freeze
74
+
66
75
  def elapsed
67
76
  current_time - @start_time
68
77
  end
@@ -80,9 +89,24 @@ module Popro
80
89
  end
81
90
 
82
91
  def format_duration(secs)
83
- return '??d??h??m??s' if secs.nil?
92
+ return '?' if secs.nil?
93
+
94
+ return format('%.3fs', secs) if secs < 10
95
+
96
+ format_duration_long(secs)
97
+ end
98
+
99
+ def format_duration_long(secs)
100
+ UNITS.map do |(divisor, format_str)|
101
+ next if secs < 1
102
+
103
+ if divisor
104
+ amount = secs % divisor
105
+ secs /= divisor
106
+ end
84
107
 
85
- format('%02dd%02dh%02dm%02ds', secs / 86_400, secs / 3600 % 24, secs / 60 % 60, secs % 60)
108
+ format(format_str, divisor ? amount : secs)
109
+ end.take_while(&:itself).reverse!.join
86
110
  end
87
111
 
88
112
  def current_time
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: popro
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.3
4
+ version: 0.2.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - MikeSmithEU
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2020-09-16 00:00:00.000000000 Z
11
+ date: 2020-09-20 00:00:00.000000000 Z
12
12
  dependencies: []
13
13
  description: The Poor-Man's Progress Indicator
14
14
  email: