Sha256: 549565d473c6940e84170d163e410e3d1db8c69eac1ec2d1f53bb10545498ea0

Contents?: true

Size: 868 Bytes

Versions: 2

Compression:

Stored size: 868 Bytes

Contents

module Vedeu

  # Measure the duration. Used for debugging.
  class Timer

    class << self

      # @param message [String]
      # @param block [Proc]
      # @return [void]
      def timer(message = '', &block)
        new(message).measure(&block)
      end

    end

    # @param message [String]
    # @return [Vedeu::Timer]
    def initialize(message = '')
      @message = message
      @started = Time.now.to_f
    end

    # @param block [Proc]
    # @return [void]
    def measure(&block)
      work = yield

      elapsed = ((Time.now.to_f - started) * 1000).to_i

      Vedeu.log(type: :timer, message: "#{message} took #{elapsed}ms.")

      work
    end

    protected

    # @!attribute [r] started
    # @return [Time]
    attr_reader :started

    # @!attribute [r] message
    # @return [String]
    attr_reader :message

  end # Timer

end # Vedeu

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
vedeu-0.4.31 lib/vedeu/support/timer.rb
vedeu-0.4.30 lib/vedeu/support/timer.rb