Module: Enumerable

Defined in:
lib/progressrus/core_ext/enumerable.rb

Instance Method Summary collapse

Instance Method Details

#with_progress(**args, &block) ⇒ Object



2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
# File 'lib/progressrus/core_ext/enumerable.rb', line 2

def with_progress(**args, &block)
  if block_given?
    progresser = progress(args)
    begin
      ret = each { |*o|
        res = yield(*o)
        progresser.tick
        res
      }
    rescue
      progresser.fail
      raise
    end
    progresser.complete
    ret
  else
    enum_for(:with_progress, args)
  end
end