Sha256: 82b4661fdd58b47c48d33bd8d716263ee04f781644e107fffd74cca569559473

Contents?: true

Size: 670 Bytes

Versions: 17

Compression:

Stored size: 670 Bytes

Contents

require "logger"

class Logger
  class Benchmarker
    attr :msg, true
    attr :severity, true
    
    def initialize(msg, severity = :warn)
      @msg, @start = msg, Time.now
      @severity = severity
    end
    
    def runtime
      Time.now - @start
    end
    
    def to_s
      "#{msg}: #{(runtime * 1000).to_i} msecs" 
    end
  end
  
  def benchmark(msg = "Benchmark", opts = {}, &block)
    benchmarker = Benchmarker.new(msg, opts[:severity] || :warn)
    yield(benchmarker).tap do
      self.send(benchmarker.severity, benchmarker.to_s) if benchmarker.runtime > (opts[:minimum] || -1)
    end
  rescue
    warn "FAIL #{benchmarker}"
    raise
  end
end

Version data entries

17 entries across 17 versions & 2 rubygems

Version Path
radiospieler-2014.11.28 lib/core-extensions/benchmark-logger.rb
radiospieler-2013.04.01 lib/core-extensions/benchmark-logger.rb
radiospieler-2012.09.13 lib/core-extensions/benchmark-logger.rb
radiospieler-0.3.12 lib/core-extensions/benchmark-logger.rb
radiospieler-0.3.11 lib/core-extensions/benchmark-logger.rb
radiospieler-0.3.10 lib/core-extensions/benchmark-logger.rb
radiospieler-0.3.8 lib/core-extensions/benchmark-logger.rb
radiospieler-0.3.7 lib/core-extensions/benchmark-logger.rb
radiospieler-0.3.6 lib/core-extensions/benchmark-logger.rb
radiospieler-0.3.5 lib/core-extensions/benchmark-logger.rb
radiospieler-0.3.4 lib/core-extensions/benchmark-logger.rb
radiospieler-0.3.3 lib/core-extensions/benchmark-logger.rb
radiospieler-0.3.2 lib/core-extensions/benchmark-logger.rb
radiospieler-0.3.1 lib/core-extensions/benchmark-logger.rb
radiospieler-0.3.0 lib/core-extensions/benchmark-logger.rb
radiospiel-app-0.2.10 lib/core-extensions/benchmark-logger.rb
radiospiel-app-0.2.9 lib/core-extensions/benchmark-logger.rb