class FistOfFury::Schedule

Attributes

ice_cube_schedule[RW]
last_occurrence[RW]
options[RW]

Public Class Methods

new() click to toggle source
# File lib/fist_of_fury/schedule.rb, line 5
def initialize
  start_time = FistOfFury.config.utc ? Time.now.utc : Time.now
  self.ice_cube_schedule = IceCube::Schedule.new(start_time)
end

Public Instance Methods

method_missing(meth, *args, &block) click to toggle source
Calls superclass method
# File lib/fist_of_fury/schedule.rb, line 10
def method_missing(meth, *args, &block)
  if IceCube::Rule.respond_to?(meth)
    rule = IceCube::Rule.send(meth, *args, &block)
    ice_cube_schedule.add_recurrence_rule(rule)
    rule
  elsif ice_cube_schedule.respond_to?(meth)
    ice_cube_schedule.send(meth, *args, &block)
  else
    super
  end
end
scheduled_time_met?(time) click to toggle source
# File lib/fist_of_fury/schedule.rb, line 22
def scheduled_time_met?(time)
  self.last_occurrence = next_occurrence(time) unless last_occurrence
  return false if last_occurrence_is_next_occurrence?(time)
  self.last_occurrence = next_occurrence(time)
  true
end
to_s() click to toggle source
# File lib/fist_of_fury/schedule.rb, line 29
def to_s
  ice_cube_schedule.to_s
end

Private Instance Methods

last_occurrence_is_next_occurrence?(time) click to toggle source
# File lib/fist_of_fury/schedule.rb, line 35
def last_occurrence_is_next_occurrence?(time)
  last_occurrence == next_occurrence(time)
end
next_occurrence(time) click to toggle source
# File lib/fist_of_fury/schedule.rb, line 39
def next_occurrence(time)
  ice_cube_schedule.next_occurrence(time)
end