console_progress 0.1.0 → 0.1.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
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