google_calendar 0.2.9 → 0.3.0
Sign up to get free protection for your applications and to get access to all the features.
- data/.travis.yml +1 -0
- data/Gemfile.lock +16 -16
- data/README.rdoc +2 -3
- data/VERSION +1 -1
- data/google_calendar.gemspec +2 -2
- data/lib/google/event.rb +23 -19
- data/test/helper.rb +1 -1
- metadata +2 -2
data/.travis.yml
CHANGED
data/Gemfile.lock
CHANGED
@@ -1,29 +1,29 @@
|
|
1
1
|
GEM
|
2
2
|
remote: http://rubygems.org/
|
3
3
|
specs:
|
4
|
-
activesupport (3.2.
|
5
|
-
i18n (
|
4
|
+
activesupport (3.2.13)
|
5
|
+
i18n (= 0.6.1)
|
6
6
|
multi_json (~> 1.0)
|
7
|
-
addressable (2.3.
|
8
|
-
bourne (1.
|
9
|
-
mocha (
|
7
|
+
addressable (2.3.3)
|
8
|
+
bourne (1.4.0)
|
9
|
+
mocha (~> 0.13.2)
|
10
10
|
i18n (0.6.1)
|
11
11
|
json (1.7.7)
|
12
12
|
metaclass (0.0.1)
|
13
|
-
mocha (0.
|
13
|
+
mocha (0.13.3)
|
14
14
|
metaclass (~> 0.0.1)
|
15
|
-
multi_json (1.
|
16
|
-
nokogiri (1.5.
|
17
|
-
rake (10.0.
|
18
|
-
rdoc (
|
15
|
+
multi_json (1.7.2)
|
16
|
+
nokogiri (1.5.9)
|
17
|
+
rake (10.0.4)
|
18
|
+
rdoc (4.0.1)
|
19
19
|
json (~> 1.4)
|
20
|
-
shoulda (3.
|
21
|
-
shoulda-context (~> 1.0.1)
|
22
|
-
shoulda-matchers (~> 1.4.1)
|
23
|
-
shoulda-context (1.
|
24
|
-
shoulda-matchers (1.
|
20
|
+
shoulda (3.4.0)
|
21
|
+
shoulda-context (~> 1.0, >= 1.0.1)
|
22
|
+
shoulda-matchers (~> 1.0, >= 1.4.1)
|
23
|
+
shoulda-context (1.1.1)
|
24
|
+
shoulda-matchers (1.5.6)
|
25
25
|
activesupport (>= 3.0.0)
|
26
|
-
bourne (~> 1.
|
26
|
+
bourne (~> 1.3)
|
27
27
|
|
28
28
|
PLATFORMS
|
29
29
|
ruby
|
data/README.rdoc
CHANGED
@@ -1,11 +1,10 @@
|
|
1
|
-
[![Build Status](https://travis-ci.org/northworld/google_calendar.png?branch=master)](https://travis-ci.org/northworld/google_calendar)
|
2
|
-
|
3
|
-
[![Code Climate](https://codeclimate.com/github/northworld/google_calendar.png)](https://codeclimate.com/github/northworld/google_calendar)
|
4
1
|
|
5
2
|
= Google Calendar
|
6
3
|
|
7
4
|
A fast lightweight and minimalist wrapper around the google calendar api.
|
8
5
|
|
6
|
+
{<img src="https://travis-ci.org/northworld/google_calendar.png?branch=master" alt="Build Status" />}[https://travis-ci.org/northworld/google_calendar] {<img src="https://gemnasium.com/northworld/google_calendar.png" alt="Dependency Status" />}[https://gemnasium.com/northworld/google_calendar] {<img src="https://codeclimate.com/github/northworld/google_calendar.png" />}[https://codeclimate.com/github/northworld/google_calendar]
|
7
|
+
|
9
8
|
== Install
|
10
9
|
[sudo] gem install 'google_calendar'
|
11
10
|
|
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.
|
1
|
+
0.3.0
|
data/google_calendar.gemspec
CHANGED
@@ -2,8 +2,8 @@
|
|
2
2
|
|
3
3
|
Gem::Specification.new do |s|
|
4
4
|
s.name = "google_calendar"
|
5
|
-
s.version = "0.
|
6
|
-
s.date = "2013-
|
5
|
+
s.version = "0.3.0"
|
6
|
+
s.date = "2013-04-15"
|
7
7
|
|
8
8
|
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
9
9
|
|
data/lib/google/event.rb
CHANGED
@@ -15,9 +15,11 @@ module Google
|
|
15
15
|
# * +calendar+ - What calendar the event belongs to, read/write.
|
16
16
|
# * +raw_xml+ - The full google xml representation of the event.
|
17
17
|
# * +html_link+ - An absolute link to this event in the Google Calendar Web UI. Read-only.
|
18
|
+
# * +published_time+ - The time of the event creation. Read-only.
|
19
|
+
# * +updated_time+ - The last update time of the event. Read-only.
|
18
20
|
#
|
19
21
|
class Event
|
20
|
-
attr_reader :id, :raw_xml, :html_link
|
22
|
+
attr_reader :id, :raw_xml, :html_link, :updated_time, :published_time
|
21
23
|
attr_accessor :title, :content, :where, :calendar, :quickadd, :transparency
|
22
24
|
|
23
25
|
# Create a new event, and optionally set it's attributes.
|
@@ -31,20 +33,20 @@ module Google
|
|
31
33
|
# :calendar => calendar_object)
|
32
34
|
#
|
33
35
|
def initialize(params = {})
|
34
|
-
|
35
|
-
@
|
36
|
-
@
|
37
|
-
@
|
38
|
-
@
|
39
|
-
@
|
40
|
-
@end_time
|
41
|
-
|
42
|
-
@
|
43
|
-
@
|
44
|
-
|
45
|
-
@
|
46
|
-
@
|
47
|
-
|
36
|
+
@id = params[:id]
|
37
|
+
@title = params[:title]
|
38
|
+
@where = params[:where]
|
39
|
+
@raw_xml = params[:raw_xml]
|
40
|
+
@content = params[:content]
|
41
|
+
@calendar = params[:calendar]
|
42
|
+
@end_time = params[:end_time]
|
43
|
+
@quickadd = params[:quickadd]
|
44
|
+
@html_link = params[:html_link]
|
45
|
+
@start_time = params[:start_time]
|
46
|
+
self.all_day = params[:all_day] if params[:all_day]
|
47
|
+
@updated_time = params[:updated]
|
48
|
+
@transparency = params[:transparency]
|
49
|
+
@published_time = params[:published]
|
48
50
|
end
|
49
51
|
|
50
52
|
# Sets the start time of the Event. Must be a Time object or a parsable string representation of a time.
|
@@ -78,14 +80,14 @@ module Google
|
|
78
80
|
raise ArgumentError, "End Time must be either Time or String" unless (time.is_a?(String) || time.is_a?(Time))
|
79
81
|
@end_time = (time.is_a? String) ? Time.parse(time) : time.dup.utc
|
80
82
|
end
|
81
|
-
|
83
|
+
|
82
84
|
# Returns whether the Event is an all-day event, based on whether the event starts at the beginning and ends at the end of the day.
|
83
85
|
#
|
84
86
|
def all_day?
|
85
87
|
time = Time.parse(@start_time)
|
86
88
|
duration % (24 * 60 * 60) == 0 && time == Time.local(time.year,time.month,time.day)
|
87
89
|
end
|
88
|
-
|
90
|
+
|
89
91
|
def all_day=(time)
|
90
92
|
if time.class == String
|
91
93
|
time = Time.parse(time)
|
@@ -93,7 +95,7 @@ module Google
|
|
93
95
|
@start_time = time.strftime("%Y-%m-%d")
|
94
96
|
@end_time = (time + 24*60*60).strftime("%Y-%m-%d")
|
95
97
|
end
|
96
|
-
|
98
|
+
|
97
99
|
# Duration in seconds
|
98
100
|
def duration
|
99
101
|
Time.parse(end_time) - Time.parse(start_time)
|
@@ -173,7 +175,9 @@ module Google
|
|
173
175
|
:end_time => xml.at_xpath("gd:when")['endTime'],
|
174
176
|
:transparency => xml.at_xpath("gd:transparency")['value'].split('.').last,
|
175
177
|
:quickadd => (xml.at_xpath("gCal:quickadd") ? (xml.at_xpath("gCal:quickadd")['quickadd']) : nil),
|
176
|
-
:html_link => xml.at_xpath('//xmlns:link[@title="alternate" and @rel="alternate" and @type="text/html"]')['href']
|
178
|
+
:html_link => xml.at_xpath('//xmlns:link[@title="alternate" and @rel="alternate" and @type="text/html"]')['href'],
|
179
|
+
:published => xml.at_xpath("xmlns:published").content,
|
180
|
+
:updated => xml.at_xpath("xmlns:updated").content )
|
177
181
|
end
|
178
182
|
|
179
183
|
# Set the ID after google assigns it (only necessary when we are creating a new event)
|
data/test/helper.rb
CHANGED
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: google_calendar
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.3.0
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2013-
|
12
|
+
date: 2013-04-15 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: nokogiri
|