Class: TimerPlugin

Inherits:
Object
  • Object
show all
Extended by:
Plugin, PluginType
Defined in:
lib/mvn2/plugin/timer.plugin.rb

Class Method Summary collapse

Class Method Details

.colorize_if_should(text) ⇒ Object



40
41
42
43
# File 'lib/mvn2/plugin/timer.plugin.rb', line 40

def self.colorize_if_should(text)
  options = Plugins.get_var :options
  options[:colored] ? text.format_all : text.remove_format
end

.get_avg_message(amin, asec, avg, diff, m, s) ⇒ Object



45
46
47
48
49
# File 'lib/mvn2/plugin/timer.plugin.rb', line 45

def self.get_avg_message(amin, asec, avg, diff, m, s)
  progress = ((diff.to_f / avg.to_f) * 100.0)
  bars     = [progress.floor, 100].min
  "[#{'=' * bars}>#{' ' * (100 - bars)}] {#{m}:#{s}}(:time) ({~#{'%.3f' % progress}%}(:percent)) (average: {#{amin}:#{asec}}(:average))"
end

.get_closest(time) ⇒ Object



51
52
53
54
# File 'lib/mvn2/plugin/timer.plugin.rb', line 51

def self.get_closest(time)
  averages = Plugins.get_var :averages
  averages.min { |a, b| (a - time).abs <=> (b - time).abs }
end

.get_time_parts(time) ⇒ Object



64
65
66
# File 'lib/mvn2/plugin/timer.plugin.rb', line 64

def self.get_time_parts(time)
  return (time / 60.0).floor, '%06.3f' % (time % 60)
end

.get_timer_message(start_time, time) ⇒ Object



56
57
58
59
60
61
62
# File 'lib/mvn2/plugin/timer.plugin.rb', line 56

def self.get_timer_message(start_time, time)
  diff       = time - start_time
  avg        = get_closest(diff)
  amin, asec = get_time_parts(avg)
  m, s       = get_time_parts(diff)
  colorize_if_should((avg == 0) ? "{#{m}:#{s}}(:time)" : get_avg_message(amin, asec, avg, diff, m, s))
end