class Altria::Scheduler

Constants

CRON_REGEXP

Public Class Methods

new(schedule) click to toggle source

Takes a schedule as a String.

# File lib/altria/scheduler.rb, line 6
def initialize(schedule)
  @result, @min, @hour, @day, @month, @wday = *schedule.match(CRON_REGEXP)
  validate
end

Public Instance Methods

scheduled?() click to toggle source
# File lib/altria/scheduler.rb, line 11
def scheduled?
  [:min, :hour, :day, :month, :wday].all? do |key|
    send(key).nil? || send(key) == now.send(key)
  end
end

Private Instance Methods

day() click to toggle source
# File lib/altria/scheduler.rb, line 27
def day
  @day.to_i if @day != "*"
end
hour() click to toggle source
# File lib/altria/scheduler.rb, line 23
def hour
  @hour.to_i if @hour != "*"
end
min() click to toggle source
# File lib/altria/scheduler.rb, line 19
def min
  @min.to_i if @min != "*"
end
month() click to toggle source
# File lib/altria/scheduler.rb, line 31
def month
  @month.to_i if @month != "*"
end
now() click to toggle source
# File lib/altria/scheduler.rb, line 39
def now
  @now ||= Time.now
end
raise_argument_error() click to toggle source
# File lib/altria/scheduler.rb, line 51
def raise_argument_error
  raise ArgumentError, "Input must match with #{CRON_REGEXP}"
end
valid?() click to toggle source
# File lib/altria/scheduler.rb, line 47
def valid?
  !!@result
end
validate() click to toggle source
# File lib/altria/scheduler.rb, line 43
def validate
  raise_argument_error unless valid?
end
wday() click to toggle source
# File lib/altria/scheduler.rb, line 35
def wday
  @wday.to_i if @wday != "*"
end