class Zhong::Every
Constants
- EVERY_KEYWORDS
Public Class Methods
new(period)
click to toggle source
# File lib/zhong/every.rb, line 15 def initialize(period) @period = period raise "`every` must be >= 1 second" unless valid? end
parse(every)
click to toggle source
# File lib/zhong/every.rb, line 42 def self.parse(every) case every when Numeric, ActiveSupport::Duration new(every) when String, Symbol key = every.downcase.to_sym raise FailedToParse, every unless EVERY_KEYWORDS.key?(key) new(EVERY_KEYWORDS[key]) else raise FailedToParse, every end end
Public Instance Methods
next_at(last = Time.now)
click to toggle source
# File lib/zhong/every.rb, line 38 def next_at(last = Time.now) last + @period end
to_s()
click to toggle source
# File lib/zhong/every.rb, line 21 def to_s EVERY_KEYWORDS.to_a.reverse.each do |friendly, period| next unless @period.to_i % period.to_i == 0 rem = @period / period return "#{rem} #{friendly}" if rem == 1 return "#{rem} #{friendly}s" end "#{@period.to_i} second#{@period.to_i == 1 ? '' : 's'}" end
Private Instance Methods
valid?()
click to toggle source
# File lib/zhong/every.rb, line 34 def valid? @period.to_f >= 1 end