popro 0.0.1 → 0.1.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/popro.rb +4 -6
- data/lib/popro/context.rb +31 -32
- data/lib/popro/info.rb +0 -1
- data/lib/popro/progress.rb +1 -1
- metadata +1 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: ce1a842c500f314f3ed8ba0e7e9deb5a4ece7cbf81ea11563664336cf35ddcd1
|
4
|
+
data.tar.gz: 3d313f96ff1b5dda33e51ec994ee592447e957201ebf059b86caef3d0d830c53
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: d68080c7a53d74a50e15fdb252f7aacbc57616a9de4aeb12bff133f715c347f07cdb6c9e2643d769a48babf01c6eb127e9e2dd6bdcd3d028d460efda34068d3b
|
7
|
+
data.tar.gz: f699ce90d06692c3ccfa71a342e1eceda39456c0599891c535f024ff0b64cec5eb8c8a56d5d91f83d96f300d5009c8098a7f73cdcb62ccf778fbc0a7feb0b96b
|
data/lib/popro.rb
CHANGED
@@ -14,15 +14,13 @@ module Popro
|
|
14
14
|
Progress.new(**options, &block)
|
15
15
|
end
|
16
16
|
|
17
|
-
def self.each(obj,
|
17
|
+
def self.each(obj, total = nil, **options, &block)
|
18
|
+
options[:step] = 0 unless options.key? :step
|
18
19
|
new(0, **options).each(obj, total, &block).done
|
19
20
|
end
|
20
21
|
|
21
|
-
def self.
|
22
|
-
|
23
|
-
|
24
|
-
options[:step] = 0
|
25
|
-
each(obj, 0, **options, &block)
|
22
|
+
def self.each_will(obj, titler, total = nil, **options, &block)
|
23
|
+
new(0, **options).each_will(obj, titler, total, &block).done
|
26
24
|
end
|
27
25
|
|
28
26
|
def self.command_line(*_args)
|
data/lib/popro/context.rb
CHANGED
@@ -3,7 +3,7 @@
|
|
3
3
|
module Popro
|
4
4
|
# the progress context passed as first argument to blocks (or named argument for `Progress#each` and `Popro.each`)
|
5
5
|
|
6
|
-
WILL_CHECK_MARKS ||= '
|
6
|
+
WILL_CHECK_MARKS ||= ' ✔'
|
7
7
|
|
8
8
|
class Context
|
9
9
|
def initialize(progress:, info:, indicator:, step: 1)
|
@@ -14,25 +14,17 @@ module Popro
|
|
14
14
|
end
|
15
15
|
|
16
16
|
def each(obj, total = nil, &block)
|
17
|
-
total
|
18
|
-
|
19
|
-
block = proc { |d| d } unless block_given?
|
20
|
-
|
21
|
-
obj.each do |*args|
|
22
|
-
did block.call(*args, progress: self)
|
17
|
+
_each(obj, total) do |*args|
|
18
|
+
did block.call(*args, progress: @info)
|
23
19
|
end
|
24
|
-
|
25
|
-
self
|
26
20
|
end
|
27
21
|
|
28
|
-
def
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
kwargs[:progress].will titler.call(*args) do
|
35
|
-
yield(*args, **kwargs)
|
22
|
+
def each_will(obj, titler, total = nil, &block)
|
23
|
+
_each(obj, total) do |*args|
|
24
|
+
title = titler.call(*args)
|
25
|
+
will(title) do
|
26
|
+
block.call(*args, progress: @info)
|
27
|
+
nil
|
36
28
|
end
|
37
29
|
end
|
38
30
|
end
|
@@ -59,25 +51,25 @@ module Popro
|
|
59
51
|
block
|
60
52
|
end
|
61
53
|
|
62
|
-
def did(yielded = nil, amount =
|
54
|
+
def did(yielded = nil, amount = nil)
|
63
55
|
@info.start unless @info.running?
|
64
|
-
|
56
|
+
amount = @step if amount.nil?
|
57
|
+
raise TypeError('amount: expected an integer') unless amount.is_a? Integer
|
58
|
+
|
59
|
+
@info.current += amount unless amount.zero?
|
60
|
+
@indicator.call(@info, yielded)
|
65
61
|
|
66
62
|
self
|
67
63
|
end
|
68
64
|
|
69
|
-
def will(title = nil,
|
70
|
-
|
71
|
-
inc 0, "#{WILL_CHECK_MARKS[0]} #{title}"
|
65
|
+
def will(title = nil, step = nil, &block)
|
66
|
+
did "#{WILL_CHECK_MARKS[0]} #{title}", 0
|
72
67
|
|
73
68
|
return self unless block_given?
|
74
69
|
|
75
|
-
|
76
|
-
yielded =
|
77
|
-
yielded
|
78
|
-
|
79
|
-
# no need to communicate to Indicator if we are not advancing (avoid double calls)
|
80
|
-
did yielded, step unless step.zero?
|
70
|
+
block.call
|
71
|
+
yielded = "#{WILL_CHECK_MARKS[1]} #{title}"
|
72
|
+
did(yielded, step || @step)
|
81
73
|
yielded
|
82
74
|
end
|
83
75
|
|
@@ -87,11 +79,18 @@ module Popro
|
|
87
79
|
|
88
80
|
private
|
89
81
|
|
90
|
-
def
|
91
|
-
|
82
|
+
def _each(obj, total = nil, &block)
|
83
|
+
total = obj.size if total.nil?
|
84
|
+
raise TypeError('total: expected an integer') unless total.is_a?(Integer) || total.nil?
|
92
85
|
|
93
|
-
@info.
|
94
|
-
|
86
|
+
@info.total += total if total.positive?
|
87
|
+
# block = proc { |d| d } unless block_given?
|
88
|
+
|
89
|
+
obj.each do |*args, **kwargs|
|
90
|
+
block.call(*args, **kwargs)
|
91
|
+
end
|
92
|
+
|
93
|
+
self
|
95
94
|
end
|
96
95
|
end
|
97
96
|
end
|
data/lib/popro/info.rb
CHANGED
data/lib/popro/progress.rb
CHANGED
@@ -30,7 +30,7 @@ module Popro
|
|
30
30
|
|
31
31
|
def register_aliases
|
32
32
|
class << self
|
33
|
-
%i[each
|
33
|
+
%i[each each_will to_proc did will formatter start done].each do |method_name|
|
34
34
|
define_method method_name do |*args, &block|
|
35
35
|
@context.public_send(method_name, *args, &block)
|
36
36
|
end
|