google_calendar_api_v2 0.1.2 → 0.1.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -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: []