class SiriSays::Engine

Public Class Methods

run( username, password, interval=5 ) click to toggle source
# File lib/siri_says.rb, line 34
def run( username, password, interval=5 )
  @username = username
  @password = password
  @calendar_name = "sirisays"
  
  while true
    self.ranges.each do |range|
      GCal4Ruby::Event.find( self.service, @calendar_name, {
        "start-min" => range[:start],
        "start-max" => range[:end]
      }).each do |event|
        next if range[:all_day] != event.all_day
        SiriSays::Plugins.handle( event.title )
        event.delete
      end
    end
    sleep interval
  end
end

Protected Class Methods

immediate_end() click to toggle source
# File lib/siri_says.rb, line 77
def immediate_end
  xmltime( Date.tomorrow.beginning_of_day + 15.minutes )
end
immediate_start() click to toggle source
# File lib/siri_says.rb, line 73
def immediate_start
  xmltime( Date.tomorrow.beginning_of_day - 15.minutes )
end
ranges() click to toggle source
# File lib/siri_says.rb, line 56
def ranges
  [
    # Sceduled events
    { start: scheduled_start, end: scheduled_end, all_day: false },
    # Immediate events are all-day events
    { start: immediate_start, end: immediate_end, all_day: true }
  ]
end
scheduled_end() click to toggle source
# File lib/siri_says.rb, line 69
def scheduled_end
  xmltime( Time.now )
end
scheduled_start() click to toggle source
# File lib/siri_says.rb, line 65
def scheduled_start
  xmltime( Time.now - 30.minutes )
end
service() click to toggle source
# File lib/siri_says.rb, line 85
def service
  return @service if @service
  begin
    @service = GCal4Ruby::Service.new
    @service.authenticate( @username, @password )
    @service
  rescue GData4Ruby::HTTPRequestFailed
    raise "User name or password was incorrect."
  end
end
xmltime( time ) click to toggle source
# File lib/siri_says.rb, line 81
def xmltime( time )
  time.utc.xmlschema
end