Class: GoogleCalendar::ServiceBase

Inherits:
Object
  • Object
show all
Defined in:
lib/googlecalendar/service_base.rb

Overview

This class interacts with google calendar service.

Direct Known Subclasses

Service, ServiceAuthSub

Constant Summary collapse

AUTH_SERVER =

Server name to Authenticate

"www.google.com"
@@proxy_addr =

proxy server address

nil
@@proxy_port =

proxy server port number

nil
@@proxy_user =

proxy server username

nil
@@proxy_pass =

proxy server password

nil

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Instance Attribute Details

#loggerObject

Returns the value of attribute logger.



62
63
64
# File 'lib/googlecalendar/service_base.rb', line 62

def logger
  @logger
end

Class Method Details

.proxy_addrObject



24
25
26
# File 'lib/googlecalendar/service_base.rb', line 24

def self.proxy_addr
  @@proxy_addr
end

.proxy_addr=(addr) ⇒ Object



28
29
30
# File 'lib/googlecalendar/service_base.rb', line 28

def self.proxy_addr=(addr)
  @@proxy_addr=addr
end

.proxy_passObject



54
55
56
# File 'lib/googlecalendar/service_base.rb', line 54

def self.proxy_pass
  @@proxy_pass
end

.proxy_pass=(pass) ⇒ Object



58
59
60
# File 'lib/googlecalendar/service_base.rb', line 58

def self.proxy_pass=(pass)
  @@proxy_pass = pass
end

.proxy_portObject



34
35
36
# File 'lib/googlecalendar/service_base.rb', line 34

def self.proxy_port
  @@proxy_port
end

.proxy_port=(port) ⇒ Object



38
39
40
# File 'lib/googlecalendar/service_base.rb', line 38

def self.proxy_port=(port)
  @@proxy_port = port
end

.proxy_userObject



44
45
46
# File 'lib/googlecalendar/service_base.rb', line 44

def self.proxy_user
  @@proxy_user
end

.proxy_user=(user) ⇒ Object



48
49
50
# File 'lib/googlecalendar/service_base.rb', line 48

def self.proxy_user=(user)
  @@proxy_user = user
end

Instance Method Details

#delete(feed) ⇒ Object

delete an event.



95
96
97
98
99
100
101
102
103
104
# File 'lib/googlecalendar/service_base.rb', line 95

def delete(feed)
  logger.info("-- delete st --") if logger
  auth unless @auth
  uri = URI.parse(feed)
  res = do_post(uri, 
          {"X-HTTP-Method-Override" => "DELETE"}, 
           "DELETE " + uri.path)
  logger.info("-- delete en (#{res.message}) --") if logger
  res
end

#insert(feed, event) ⇒ Object

insert an event



109
110
111
112
113
114
115
116
117
118
# File 'lib/googlecalendar/service_base.rb', line 109

def insert(feed, event)
  logger.info("-- insert st --") if logger
  auth unless @auth
  uri = URI.parse(feed)
  res = do_post(uri, 
          {"Content-Type" => "application/atom+xml",
           "Content-Length" => event.length.to_s}, event)
  logger.info("-- insert en (#{res.message}) --") if logger
  res
end

#query(cal_url, conditions = nil) ⇒ Object

send query for events of a calendar and returns http response object. available condtions are

  • :q => query string

  • :max-results => max contents count. (default: 25)

  • :start-index => 1-based index of the first result to be retrieved

  • :orderby => the order of retrieved data.

  • :published-min => Bounds on the entry publication date(oldest)

  • :published-max => Bounds on the entry publication date(newest)

  • :updated-min => Bounds on the entry update date(oldest)

  • :updated-max => Bounds on the entry update date(newest)

  • :author => Entry author

and so on. For detail, see code.google.com/apis/gdata/protocol.html#Queries

and http://code.google.com/apis/calendar/reference.html#Parameters


80
81
82
83
84
85
86
87
88
89
90
# File 'lib/googlecalendar/service_base.rb', line 80

def query(cal_url, conditions = nil)
  logger.info("-- query st --") if logger
  auth unless @auth
  uri = URI.parse(cal_url)
  uri.query = conditions.map do |key, val|
    "#{key}=#{URI.escape(val.kind_of?(Time) ? val.getutc.iso8601 : val.to_s)}"
  end.join("&") unless conditions.nil?
  res = do_get(uri, {})
  logger.info("-- query en (#{res.message}) --") if logger
  res
end

#update(feed, event) ⇒ Object

update an event.



123
124
125
126
127
128
129
130
131
132
133
# File 'lib/googlecalendar/service_base.rb', line 123

def update(feed, event)
  logger.info("-- update st --") if logger
  auth unless @auth
  uri = URI.parse(feed)
  res = do_post(uri, 
          {"X-HTTP-Method-Override" => "PUT", 
           "Content-Type" => "application/atom+xml",
           "Content-Length" => event.length.to_s}, event)
  logger.info("-- update en (#{res.message}) --") if logger
  res
end