google_calendar_api_v2 0.1.2 → 0.1.3

Sign up to get free protection for your applications and to get access to all the features.
@@ -9,18 +9,35 @@ module GoogleCalendarApiV2
9
9
  end
10
10
 
11
11
  def find(calendar_token, url = nil, redirect_count = 0)
12
- url ||= "/calendar/feeds/default/allcalendars/full/#{calendar_token}?alt=jsonc"
12
+ url ||= "https://www.google.com/calendar/feeds/default/allcalendars/full/#{calendar_token}?alt=jsonc"
13
13
  response = @connection.get url, Client::HEADERS
14
14
 
15
15
  raise 'Redirection Loop' if redirect_count > 3
16
16
 
17
17
  if success? response
18
- Response::Calendar.new(response, @connection)
18
+ item = JSON.parse(response.body)['data']
19
+ Response::Calendar.new(item, @connection)
19
20
  elsif redirect? response
20
21
  find(calendar_token, response['location'], redirect_count += 1)
21
22
  end
22
23
  end
23
24
 
25
+ def all(url = nil, redirect_count = 0)
26
+ url ||= "https://www.google.com/calendar/feeds/default/allcalendars/full?alt=jsonc"
27
+ response = @connection.get url, Client::HEADERS
28
+
29
+ if success? response
30
+ # Response::Event.new(response, @connection, @calendar)
31
+ if items = JSON.parse(response.body)['data']['items']
32
+ items.map {|item| Response::Calendar.new(item, @connection, @calendar) }
33
+ else
34
+ []
35
+ end
36
+ elsif redirect? response
37
+ all(response['location'], redirect_count += 1)
38
+ end
39
+ end
40
+
24
41
  def create(params = {}, url = nil, redirect_count = 0)
25
42
  url ||= '/calendar/feeds/default/owncalendars/full?alt=jsonc'
26
43
  response = @connection.post url,
@@ -34,7 +51,8 @@ module GoogleCalendarApiV2
34
51
  raise 'Redirection Loop' if redirect_count > 3
35
52
 
36
53
  if success? response
37
- Response::Calendar.new(response, @connection)
54
+ item = JSON.parse(response.body)['data']
55
+ Response::Calendar.new(item, @connection)
38
56
  elsif redirect?(response)
39
57
  create(params, response['location'], redirect_count += 1)
40
58
  end
@@ -16,12 +16,29 @@ module GoogleCalendarApiV2
16
16
  raise 'Redirection Loop' if redirect_count > 3
17
17
 
18
18
  if success? response
19
- Response::Event.new(response, @connection, @calendar)
19
+ item = JSON.parse(response.body)['data']
20
+ Response::Event.new(item, @connection, @calendar)
20
21
  elsif redirect? response
21
22
  find(event_token, response['location'], redirect_count += 1)
22
23
  end
23
24
  end
24
25
 
26
+ def all(url = nil, redirect_count = 0)
27
+ url ||= "https://www.google.com/calendar/feeds/#{@calendar.token}/private/full?alt=jsonc&futureevents=false"
28
+ response = @connection.get url, Client::HEADERS
29
+
30
+ if success? response
31
+ # Response::Event.new(response, @connection, @calendar)
32
+ if items = JSON.parse(response.body)['data']['items']
33
+ items.map {|item| Response::Event.new(item, @connection, @calendar) }
34
+ else
35
+ []
36
+ end
37
+ elsif redirect? response
38
+ all(response['location'], redirect_count += 1)
39
+ end
40
+ end
41
+
25
42
  def create(params = {}, url = nil, redirect_count = 0)
26
43
  url ||= "/calendar/feeds/#{@calendar.token}/private/full?alt=jsonc"
27
44
 
@@ -36,7 +53,8 @@ module GoogleCalendarApiV2
36
53
  raise 'Redirection Loop' if redirect_count > 3
37
54
 
38
55
  if success? response
39
- Response::Event.new(response, @connection, @calendar)
56
+ item = JSON.parse(response.body)['data']
57
+ Response::Event.new(item, @connection, @calendar)
40
58
  elsif redirect? response
41
59
  create(params, response['location'], redirect_count += 1)
42
60
  else
@@ -5,9 +5,9 @@ module GoogleCalendarApiV2
5
5
  module Base
6
6
  attr_reader :response, :attributes
7
7
 
8
- def initialize(response, connection, parent = nil)
8
+ def initialize(item, connection, parent = nil)
9
9
  @response, @connection = response, connection
10
- @attributes = JSON.parse(response.body)['data'] rescue {}
10
+ @attributes = item
11
11
  end
12
12
 
13
13
  def update_attributes(attributes)
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: google_calendar_api_v2
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.2
4
+ version: 0.1.3
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,11 +9,11 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2012-02-24 00:00:00.000000000 Z
12
+ date: 2012-03-19 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: oauth
16
- requirement: &70224774125760 !ruby/object:Gem::Requirement
16
+ requirement: &70111195491300 !ruby/object:Gem::Requirement
17
17
  none: false
18
18
  requirements:
19
19
  - - ! '>='
@@ -21,7 +21,7 @@ dependencies:
21
21
  version: '0'
22
22
  type: :runtime
23
23
  prerelease: false
24
- version_requirements: *70224774125760
24
+ version_requirements: *70111195491300
25
25
  description:
26
26
  email: unixcharles@gmail.com
27
27
  executables: []