lib/compsci/timer.rb in compsci-0.0.3.1 vs lib/compsci/timer.rb in compsci-0.1.0.1

- old
+ new

@@ -1,36 +1,37 @@ -require 'compsci' +module CompSci -module CompSci::Timer - # lifted from seattlerb/minitest - if defined? Process::CLOCK_MONOTONIC - def self.now - Process.clock_gettime Process::CLOCK_MONOTONIC + module Timer + # lifted from seattlerb/minitest + if defined? Process::CLOCK_MONOTONIC + def self.now + Process.clock_gettime Process::CLOCK_MONOTONIC + end + else + def self.now + Time.now + end end - else - def self.now - Time.now + + def self.since(t) + self.now - t end - end - def self.since(t) - self.now - t - end + def self.elapsed(&work) + t = self.now + return yield, self.since(t) + end - def self.elapsed(&work) - t = self.now - return yield, self.since(t) - end - - def self.loop_avg(count: 999, seconds: 1, &work) - i = 0 - start = self.now - val = nil - loop { - val = yield - i += 1 - break if i >= count - break if self.since(start) > seconds - } - return val, self.since(start) / i.to_f + def self.loop_avg(count: 999, seconds: 1, &work) + i = 0 + start = self.now + val = nil + loop { + val = yield + i += 1 + break if i >= count + break if self.since(start) > seconds + } + return val, self.since(start) / i.to_f + end end end