Class: PEROBS::ProgressMeter
- Inherits:
-
Object
- Object
- PEROBS::ProgressMeter
- Defined in:
- lib/perobs/ProgressMeter.rb
Overview
This is the base class for all ProgressMeter classes. It only logs into the PEROBS log. You need to create a derived class that overloads print_bar() and print_time() to provide more fancy outputs.
Direct Known Subclasses
Instance Method Summary collapse
- #done ⇒ Object
-
#initialize ⇒ ProgressMeter
constructor
A new instance of ProgressMeter.
- #start(name, max_value) ⇒ Object
- #update(value) ⇒ Object
Constructor Details
#initialize ⇒ ProgressMeter
Returns a new instance of ProgressMeter.
37 38 39 40 41 42 43 |
# File 'lib/perobs/ProgressMeter.rb', line 37 def initialize @name = nil @max_value = nil @current_value = nil @start_time = nil @end_time = nil end |
Instance Method Details
#done ⇒ Object
70 71 72 73 74 75 |
# File 'lib/perobs/ProgressMeter.rb', line 70 def done @end_time = Time.now print_time PEROBS.log.info "#{@name} completed in " + secsToHMS(@end_time - @start_time) end |
#start(name, max_value) ⇒ Object
45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 |
# File 'lib/perobs/ProgressMeter.rb', line 45 def start(name, max_value) @name = name unless max_value >= 0 raise ArgumentError, "Maximum value (#{max_value}) must be larger " + "or equal to 0" end @max_value = max_value @current_value = 0 @start_time = Time.now @end_time = nil if block_given? yield(self) done end end |
#update(value) ⇒ Object
63 64 65 66 67 68 |
# File 'lib/perobs/ProgressMeter.rb', line 63 def update(value) return unless (value_i = value.to_i) > @current_value @current_value = value_i end |