googlecalendar 0.0.6 → 1.0.0
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.
- 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
|