console_progress 0.1.0 → 0.1.1

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
  SHA1:
3
- metadata.gz: c71df20be61e4883f8b00664151b2aff535caa89
4
- data.tar.gz: d6e06f27d1fccf73dc9f3977845fae49bf822801
3
+ metadata.gz: ba4756c4e6f20a41abdcfe9641c96a2ce916639f
4
+ data.tar.gz: a033674cbc6e758300100db634fe847b1e9adbf8
5
5
  SHA512:
6
- metadata.gz: 778670e005b3152761f97459942c9e9ad8c55ace597d52794a98433eb2ac115f6fbe36089cb3196cd1cab499477e69919146f087411fabdd7938a890b752e322
7
- data.tar.gz: b4a3b1342d78688afa0a9d9f3a0596bd0a375a42e201b4c79f5c329d94d96bb1fe0d1d555ea377aa8febf9ee7e32c460ec231c5c7e71ecf3eb852aaea7ace6be
6
+ metadata.gz: b6a71f155ef80bd599f1a84c08354369c1b09e3bbf674d2926781553251215b9186489cabd957f72c77efea755ca180519c5e506ac2735bf934335f5c49c2221
7
+ data.tar.gz: c486ecab73928c2ba7f963227f6a29a3f839ac8fcf842aa0214d4e002361fd72f675381bd4984d65c70a90228e6c255dc3d3fa620c82c2debe0d63125e3f60a0
data/README.md CHANGED
@@ -21,9 +21,9 @@ Or install it yourself as:
21
21
  ## Usage
22
22
 
23
23
  ```ruby
24
- prog = ConsoleProgress::ETA.new(5)
24
+ prog = ConsoleProgress::ETA.new(100)
25
25
  prog.start
26
- 5.times do
26
+ 100.times do
27
27
  puts prog.progress
28
28
  sleep 2
29
29
  end
@@ -31,11 +31,11 @@ end
31
31
 
32
32
  Would output something like:
33
33
  ```
34
- ETA: 1/5 Time Left 0.00h or 0.00m Took: 0.00s Avg: 0.00s
35
- ETA: 2/5 Time Left 0.00h or 0.07m Took: 2.00s Avg: 1.00s
36
- ETA: 3/5 Time Left 0.00h or 0.07m Took: 2.00s Avg: 1.34s
37
- ETA: 4/5 Time Left 0.00h or 0.05m Took: 2.00s Avg: 1.50s
38
- ETA: 5/5 Time Left 0.00h or 0.03m Took: 2.00s Avg: 1.60s
34
+ ETA: 1/100 Remainng: 0 Took: 0.00s Avg: 0.00s Elapsed: 0
35
+ ETA: 2/100 Remainng: 1:39 Took: 2.00s Avg: 1.00s Elapsed: 2
36
+ ETA: 3/100 Remainng: 2:10 Took: 2.00s Avg: 1.33s Elapsed: 4
37
+ ETA: 4/100 Remainng: 2:25 Took: 2.00s Avg: 1.50s Elapsed: 6
38
+ ...
39
39
  ```
40
40
 
41
41
  Initialize with `number of steps`. Start it. Call `.progress` to move up a step.
@@ -4,8 +4,8 @@ module ConsoleProgress
4
4
  class ETA
5
5
  ATTR = [:steps, :step, :step_time, :times,
6
6
  :avg_time, :format, :start_time,
7
- :hours, :minutes, :seconds,
8
- :message_prefix]
7
+ :seconds, :message_prefix,
8
+ :elapsed_time, :time_left]
9
9
 
10
10
  attr_accessor *ATTR
11
11
 
@@ -14,8 +14,9 @@ module ConsoleProgress
14
14
  @format = format
15
15
  @message_prefix = 'ETA'
16
16
  @format ||= "{{message_prefix}}: {{step}}/{{steps}} "\
17
- "Time Left {{hours}}h or {{minutes}}m "\
18
- "Took: {{step_time}}s Avg: {{avg_time}}s"
17
+ "Remainng: {{time_left}} "\
18
+ "Took: {{step_time}}s Avg: {{avg_time}}s "\
19
+ "Elapsed: {{elapsed_time}}"
19
20
  @step = 0
20
21
  @times = []
21
22
  end
@@ -29,13 +30,17 @@ module ConsoleProgress
29
30
  @message_prefix = msg if msg
30
31
  t = Time.now
31
32
  @step_time = t - @step_time_start
33
+
34
+ @elapsed_time = seconds_to_time(Time.now - @start_time)
35
+
32
36
  @times << @step_time
33
37
  @avg_time = @times.reduce(0, :+) / @times.size
34
38
  steps_left = @steps - @step
35
39
  @step = current_step + 1
40
+
36
41
  @seconds = steps_left * @avg_time
37
- @minutes = '%.2f' % (@seconds / 60)
38
- @hours = '%.2f' % (@seconds / 60 / 60)
42
+ @time_left = seconds_to_time(@seconds)
43
+
39
44
  @step_time = '%.2f' % @step_time
40
45
  @avg_time = '%.2f' % @avg_time
41
46
  @step_time_start = t
@@ -49,5 +54,23 @@ module ConsoleProgress
49
54
  end
50
55
  out
51
56
  end
57
+
58
+ def seconds_to_time(t)
59
+ mm, ss = t.divmod(60)
60
+ hh, mm = mm.divmod(60)
61
+ dd, hh = hh.divmod(24)
62
+ [dd, hh, mm, ss].delete_if {|r| r == 0}
63
+ .map(&:to_i)
64
+ .join(':')
65
+ end
66
+
67
+ def self.example
68
+ eta = ConsoleProgress::ETA.new(100)
69
+ eta.start
70
+ 100.times do
71
+ puts eta.progress
72
+ sleep 2
73
+ end
74
+ end
52
75
  end
53
76
  end
@@ -1,3 +1,3 @@
1
1
  module ConsoleProgress
2
- VERSION = "0.1.0"
2
+ VERSION = "0.1.1"
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: console_progress
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.0
4
+ version: 0.1.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Ben Wiseley
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2017-11-15 00:00:00.000000000 Z
11
+ date: 2017-11-16 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler