popro 0.2.3 → 0.2.4

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
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: