module MyGCalModule

Googleカレンダーへのアクセスを提供する

~/config.ymlに

gmail:
  address: YourMailAdress@gmail.com
  pass: xxxxxxxxxx
  feedurl: http://www.google.com/calendar/feeds/xxxxxxxx%40gmail.com/private/full

使い方など class ThisDo

include MyGCalModule

して o = ThisDo.new o.gcal_read とかでok

Attributes

gcal_query[RW]
gcalfeedurl[RW]
gmail[RW]
gmailpass[RW]

Public Instance Methods

gcal_checkout(event) click to toggle source

fetchしたデータの取り込み済みマークを立てる

# File lib/lib/mygcal.rb, line 61
def gcal_checkout(event)
  event.title = '[FETCHED]' + event.title
  event.save!
  return self
end
gcal_parse_2_jobs() click to toggle source

gcalのイベントをAtMduleが食べれる形に変換する 共通のJOBクラスで包もうかしら?

# File lib/lib/mygcal.rb, line 40
def gcal_parse_2_jobs
  @gcal_jobs = []
  q = @gcal_query ||= '[Gcal2PusherTail'
  @gcal_events.each do |event|
    begin
      kind,filename = event.title.split(']')
      if(kind == @gcal_query && filename != nil)
        @gcal_jobs << {:filename => filename,
          :start => event.st,
          :end => event.en,
          :object => event}
      end
    rescue =>ex
      p ex
      #握りつぶす
    end
  end
  return self
end
gcal_read() click to toggle source
# File lib/lib/mygcal.rb, line 20
def gcal_read
  service
  @gcal_events = @gcal.events
  return self
end
gcal_write(eventdata) click to toggle source

GCalへ書きこむ

# File lib/lib/mygcal.rb, line 27
def gcal_write(eventdata)
  service
  event = @gcal.create_event
  event.title = eventdata[:title]
  event.st = eventdata[:start]
  event.en = eventdata[:end]
  event.save!
  @gcal_event = event
  return self
end
service() click to toggle source

GCalへのアクセス

# File lib/lib/mygcal.rb, line 68
def service
  if @gcal_srv.nil?
    require 'gcalapi'
    @c = MyConfig.get['gmail']
    @gcal_srv = GoogleCalendar::Service.new(@c['address'],@c['pass'])
  end
  @gcal = GoogleCalendar::Calendar::new(@gcal_srv, @c['feedurl'])
end