Sha256: 985fb01d32627f70990e560b36c5996e30f059809a6acebb8e4feb99e9c298b7

Contents?: true

Size: 887 Bytes

Versions: 3

Compression:

Stored size: 887 Bytes

Contents

require 'cap-util/say'

module CapUtil
  class Timer

    def self.pretty_time(elapsed)
      "#{elapsed / 60}:#{(elapsed % 60).to_s.rjust(2, '0')}"
    end

    attr_reader :name, :start_time, :end_time, :elapsed_time

    def initialize(name, quiet=nil)
      @name, @start_time, @end_time, @elapsed_time = name, 0, 0, 0
      @quiet = !!(quiet == :quiet)
    end

    def start(time=nil)
      CapUtil.say "Starting #{CapUtil.color @name, :cyan}." if !@quiet
      @start_time = (time || ::Time.now)
    end

    def end(time=nil)
      @end_time = (time || ::Time.now)
      @elapsed_time = @end_time - @start_time
      if !@quiet
        elapsed = self.class.pretty_time(@elapsed_time.to_i)
        CapUtil.say "#{CapUtil.color @name, :bold, :yellow} completed in"\
                    " #{CapUtil.color elapsed, :underline, :yellow}."
      end
      @end_time
    end

  end
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
cap-util-1.4.0 lib/cap-util/timer.rb
cap-util-1.3.0 lib/cap-util/timer.rb
cap-util-1.2.0 lib/cap-util/timer.rb