Sha256: 8ec1cf93f1178e67e95f0d5125f75650b21cc579e8b948a291ecd65c8c2eaf17

Contents?: true

Size: 666 Bytes

Versions: 1

Compression:

Stored size: 666 Bytes

Contents

module Petli
  DAYS_DIV = 86400
  HOURS_DIV = 3600
  MINS_DIV = 60

  module Watch
    require 'time'
    private

    def days_since(last, now=Time.now)
      time_elapsed(last, DAYS_DIV, now)
    end

    def hours_since(last)
      time_elapsed(last, HOURS_DIV)
    end

    def for_hours_since(last)
      hours_past = hours_since(last)
      (0...hours_past).each { |i| yield(i, hours_ago(i)) } if hours_past > 1
    end

    def hours_ago(hrs)
      Time.now - (hrs * 3600)
    end

    def mins_since(last)
      time_elapsed(last, MINS_DIV)
    end

    def time_elapsed(last, div, now=Time.now)
      ((now - Time.parse(last.to_s)) / div)
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
petli-0.0.4 lib/petli/watch.rb