googlecalendar 0.0.6 → 1.0.0
Sign up to get free protection for your applications and to get access to all the features.
- data/{CHANGELOG → History.txt} +12 -0
- data/Manifest.txt +20 -0
- data/PostInstall.txt +14 -0
- data/README.rdoc +55 -0
- data/README.txt +55 -0
- data/Rakefile +4 -0
- data/bin/googlecalendar4ruby +44 -0
- data/html/scripts.js +9 -0
- data/html/styles.css +11 -0
- data/lib/builders.rb +2 -95
- data/lib/googlecalendar.rb +10 -384
- data/lib/googlecalendar/calendar.rb +23 -0
- data/lib/googlecalendar/dsl.rb +52 -0
- data/lib/googlecalendar/event.rb +32 -0
- data/lib/googlecalendar/gcalendar.rb +10 -0
- data/lib/googlecalendar/gdata.rb +200 -0
- data/lib/googlecalendar/ical.rb +126 -0
- data/lib/googlecalendar/net.rb +14 -0
- data/lib/googlecalendar/version.rb +10 -0
- data/lib/googlecalendar_builders.rb +85 -0
- data/test/test_event.rb +12 -0
- data/test/test_googlecalendar.rb +11 -0
- data/test/test_helper.rb +4 -0
- data/test/test_ical.rb +16 -0
- metadata +93 -38
- data/README +0 -14
@@ -0,0 +1,14 @@
|
|
1
|
+
require 'net/http'
|
2
|
+
require 'net/https'
|
3
|
+
|
4
|
+
#
|
5
|
+
# Make it east to use some of the convenience methods using https
|
6
|
+
#
|
7
|
+
module Net
|
8
|
+
class HTTPS < HTTP
|
9
|
+
def initialize(address, port = nil)
|
10
|
+
super(address, port)
|
11
|
+
self.use_ssl = true
|
12
|
+
end
|
13
|
+
end
|
14
|
+
end
|
@@ -0,0 +1,85 @@
|
|
1
|
+
# require File.dirname(__FILE__) + '/googlecalendar'
|
2
|
+
|
3
|
+
module Googlecalendar
|
4
|
+
class TextBuilder
|
5
|
+
attr_accessor :calendar, :filename
|
6
|
+
|
7
|
+
def export
|
8
|
+
begin
|
9
|
+
File.delete(@filename)
|
10
|
+
rescue
|
11
|
+
# if doesn't exist
|
12
|
+
end
|
13
|
+
File.open(@filename, File::CREAT|File::RDWR) do |file|
|
14
|
+
file << calendar.to_s
|
15
|
+
end
|
16
|
+
end
|
17
|
+
end # class TextBuilder
|
18
|
+
end # module Googlecalendar
|
19
|
+
|
20
|
+
module Googlecalendar
|
21
|
+
class HtmlBuilder
|
22
|
+
attr_accessor :calendar, :filename, :date_format
|
23
|
+
|
24
|
+
def export
|
25
|
+
begin
|
26
|
+
File.delete(@filename)
|
27
|
+
rescue
|
28
|
+
# if doesn't exist
|
29
|
+
end
|
30
|
+
File.open(@filename, File::CREAT|File::RDWR) do |file|
|
31
|
+
file << "<html><head>\n"
|
32
|
+
file << "<title>Calendar</tilte>\n"
|
33
|
+
IO.foreach("../../html/styles.css") { |line| file << line }
|
34
|
+
file << "\n"
|
35
|
+
IO.foreach("../../html/scripts.js") { |line| file << line }
|
36
|
+
file << "\n</head>\n<body>"
|
37
|
+
file << summary
|
38
|
+
event_number = 0
|
39
|
+
@calendar.events.each do |event|
|
40
|
+
file << "<p class=\"event\">"
|
41
|
+
file << "<h2>Event [" + event.start_date.to_s + "]</h2>"
|
42
|
+
file << "<div><b>From: </b>" + event.start_date.to_s + "<b> -> To:</b> " + event.end_date.to_s + "</div>"
|
43
|
+
file << div(event, 'summary')
|
44
|
+
file << details(event, event_number)
|
45
|
+
file << "</p>\n"
|
46
|
+
event_number += 1
|
47
|
+
end
|
48
|
+
file << "</body></html>"
|
49
|
+
end
|
50
|
+
end
|
51
|
+
|
52
|
+
def format(date)
|
53
|
+
Date.strptime(date, @date_format)
|
54
|
+
end
|
55
|
+
|
56
|
+
def summary
|
57
|
+
data = "<p class=\"calendar\">"
|
58
|
+
data << "<h1>Calendar</h1>"
|
59
|
+
data << div(@calendar, 'version')
|
60
|
+
data << div(@calendar, 'scale')
|
61
|
+
data << div(@calendar, 'method')
|
62
|
+
data << "<div><b>number of events: </b>" + @calendar.events.size.to_s + "</div>"
|
63
|
+
data << "</p>\n"
|
64
|
+
return data
|
65
|
+
end
|
66
|
+
|
67
|
+
def details(event, number)
|
68
|
+
details = "<a href=\"javascript:displayHideSection('details" + number.to_s + "');\">Display details</a>"
|
69
|
+
details << "<div id=\"details" + number.to_s + "\" class=\"details\">"
|
70
|
+
details << div(event, 'start_date')
|
71
|
+
details << div(event, 'end_date')
|
72
|
+
details << div(event, 'time_stamp')
|
73
|
+
details << div(event, 'created')
|
74
|
+
details << div(event, 'last_modified')
|
75
|
+
details << div(event, 'status')
|
76
|
+
details << div(event, 'rrule')
|
77
|
+
details << div(event, 'class_name')
|
78
|
+
details << "</div>"
|
79
|
+
end
|
80
|
+
|
81
|
+
def div(object, field)
|
82
|
+
"<div><b>" + field.capitalize + ": </b>" + object.send(field).to_s + "</div>\n"
|
83
|
+
end
|
84
|
+
end # class HtmlBuilder
|
85
|
+
end # module module Googlecalendar
|
data/test/test_event.rb
ADDED
@@ -0,0 +1,12 @@
|
|
1
|
+
require File.dirname(__FILE__) + '/test_helper.rb'
|
2
|
+
|
3
|
+
class EventTest < Test::Unit::TestCase
|
4
|
+
def test_rrule_as_hash
|
5
|
+
e = Event.new
|
6
|
+
e.rrule = 'FREQ=WEEKLY;BYDAY=MO;WKST=MO'
|
7
|
+
values = e.rrule_as_hash
|
8
|
+
assert_equal 'WEEKLY', values['FREQ']
|
9
|
+
assert_equal 'MO', values['BYDAY']
|
10
|
+
assert_equal 'MO', values['WKST']
|
11
|
+
end
|
12
|
+
end
|
data/test/test_helper.rb
ADDED
data/test/test_ical.rb
ADDED
@@ -0,0 +1,16 @@
|
|
1
|
+
require File.dirname(__FILE__) + '/test_helper.rb'
|
2
|
+
|
3
|
+
class ICALParserTest < Test::Unit::TestCase
|
4
|
+
def test_parse
|
5
|
+
parser = ICALParser.new
|
6
|
+
path = File.dirname(__FILE__) + '/ical_sample.ics'
|
7
|
+
File.open(path, 'r') do |f|
|
8
|
+
calendar = parser.parse(f.read)
|
9
|
+
assert_equal '2.0', calendar.version
|
10
|
+
assert_equal '', calendar.scale
|
11
|
+
assert_equal '', calendar.method
|
12
|
+
assert_equal '', calendar.product_id
|
13
|
+
# events = calendar.events
|
14
|
+
end
|
15
|
+
end
|
16
|
+
end
|
metadata
CHANGED
@@ -1,49 +1,104 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
|
-
rubygems_version: 0.9.4
|
3
|
-
specification_version: 1
|
4
2
|
name: googlecalendar
|
5
3
|
version: !ruby/object:Gem::Version
|
6
|
-
version: 0.0
|
7
|
-
date: 2007-12-03 00:00:00 +01:00
|
8
|
-
summary: Google Calendar api for Ruby
|
9
|
-
require_paths:
|
10
|
-
- lib
|
11
|
-
email: cogito@rubyforge.org
|
12
|
-
homepage: http://benjamin.francisoud.googlepages.com/googlecalendar
|
13
|
-
rubyforge_project: googlecalendar
|
14
|
-
description: "The Google Calendar project provides: Export features (text file, simple html page), Ruby api's to connect to google calendars, A plugin for Ruby On Rails."
|
15
|
-
autorequire: googlecalendar
|
16
|
-
default_executable:
|
17
|
-
bindir: bin
|
18
|
-
has_rdoc: true
|
19
|
-
required_ruby_version: !ruby/object:Gem::Version::Requirement
|
20
|
-
requirements:
|
21
|
-
- - ">"
|
22
|
-
- !ruby/object:Gem::Version
|
23
|
-
version: 0.0.0
|
24
|
-
version:
|
4
|
+
version: 1.0.0
|
25
5
|
platform: ruby
|
26
|
-
signing_key:
|
27
|
-
cert_chain:
|
28
|
-
post_install_message:
|
29
6
|
authors:
|
30
7
|
- Benjamin Francisoud
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
- lib/builders.rb
|
35
|
-
- lib/googlecalendar.rb
|
36
|
-
test_files: []
|
37
|
-
|
38
|
-
rdoc_options: []
|
39
|
-
|
40
|
-
extra_rdoc_files: []
|
41
|
-
|
42
|
-
executables: []
|
8
|
+
autorequire:
|
9
|
+
bindir: bin
|
10
|
+
cert_chain: []
|
43
11
|
|
12
|
+
date: 2009-03-05 00:00:00 +01:00
|
13
|
+
default_executable:
|
14
|
+
dependencies:
|
15
|
+
- !ruby/object:Gem::Dependency
|
16
|
+
name: hoe
|
17
|
+
type: :development
|
18
|
+
version_requirement:
|
19
|
+
version_requirements: !ruby/object:Gem::Requirement
|
20
|
+
requirements:
|
21
|
+
- - ">="
|
22
|
+
- !ruby/object:Gem::Version
|
23
|
+
version: 1.8.0
|
24
|
+
version:
|
25
|
+
description: description of gem
|
26
|
+
email:
|
27
|
+
- ruby.francisoud@gmail.com
|
28
|
+
executables:
|
29
|
+
- googlecalendar4ruby
|
44
30
|
extensions: []
|
45
31
|
|
32
|
+
extra_rdoc_files:
|
33
|
+
- History.txt
|
34
|
+
- Manifest.txt
|
35
|
+
- PostInstall.txt
|
36
|
+
- README.rdoc
|
37
|
+
- README.txt
|
38
|
+
files:
|
39
|
+
- History.txt
|
40
|
+
- Manifest.txt
|
41
|
+
- PostInstall.txt
|
42
|
+
- README.rdoc
|
43
|
+
- README.txt
|
44
|
+
- Rakefile
|
45
|
+
- bin/googlecalendar4ruby
|
46
|
+
- html/scripts.js
|
47
|
+
- html/styles.css
|
48
|
+
- lib/builders.rb
|
49
|
+
- lib/googlecalendar.rb
|
50
|
+
- lib/googlecalendar/calendar.rb
|
51
|
+
- lib/googlecalendar/dsl.rb
|
52
|
+
- lib/googlecalendar/event.rb
|
53
|
+
- lib/googlecalendar/gcalendar.rb
|
54
|
+
- lib/googlecalendar/gdata.rb
|
55
|
+
- lib/googlecalendar/ical.rb
|
56
|
+
- lib/googlecalendar/net.rb
|
57
|
+
- lib/googlecalendar/version.rb
|
58
|
+
- lib/googlecalendar_builders.rb
|
59
|
+
has_rdoc: true
|
60
|
+
homepage: http://googlecalendar.rubyforge.org
|
61
|
+
post_install_message: |+
|
62
|
+
Thanks a lot for installing googlecalendar for ruby ;)
|
63
|
+
|
64
|
+
If you are migrating from version 0.0.x to 1.0.0, you will need to add:
|
65
|
+
|
66
|
+
require 'googlecalendar'
|
67
|
+
** include Googlecalendar **
|
68
|
+
|
69
|
+
If you where using the 'builders' with:
|
70
|
+
require 'builders' # DEPRECATED
|
71
|
+
is replaced by
|
72
|
+
require 'googlecalendar_builders'
|
73
|
+
|
74
|
+
For more information on googlecalendar, see http://googlecalendar.rubyforge.org
|
75
|
+
|
76
|
+
rdoc_options:
|
77
|
+
- --main
|
78
|
+
- README.rdoc
|
79
|
+
require_paths:
|
80
|
+
- lib
|
81
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
82
|
+
requirements:
|
83
|
+
- - ">="
|
84
|
+
- !ruby/object:Gem::Version
|
85
|
+
version: "0"
|
86
|
+
version:
|
87
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
88
|
+
requirements:
|
89
|
+
- - ">="
|
90
|
+
- !ruby/object:Gem::Version
|
91
|
+
version: "0"
|
92
|
+
version:
|
46
93
|
requirements: []
|
47
94
|
|
48
|
-
|
49
|
-
|
95
|
+
rubyforge_project: googlecalendar
|
96
|
+
rubygems_version: 1.3.1
|
97
|
+
signing_key:
|
98
|
+
specification_version: 2
|
99
|
+
summary: description of gem
|
100
|
+
test_files:
|
101
|
+
- test/test_helper.rb
|
102
|
+
- test/test_googlecalendar.rb
|
103
|
+
- test/test_ical.rb
|
104
|
+
- test/test_event.rb
|
data/README
DELETED
@@ -1,14 +0,0 @@
|
|
1
|
-
== Google Calendar
|
2
|
-
The Google Calendar project provides
|
3
|
-
* Export features (text file, simple html page or excel files),
|
4
|
-
* Ruby api's to connect to google calendars
|
5
|
-
* A plugin for Ruby On Rails.
|
6
|
-
|
7
|
-
== License
|
8
|
-
GoogleCalendar for Ruby is released under the Apache license.
|
9
|
-
|
10
|
-
== Support
|
11
|
-
http://rubyforge.org/projects/googlecalendar/
|
12
|
-
|
13
|
-
== Author
|
14
|
-
Benjamin Francisoud - http://rubyscube.blogspot.com
|