icalendar 0.95
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/COPYING +56 -0
- data/GPL +340 -0
- data/README +121 -0
- data/Rakefile +101 -0
- data/docs/api/classes/Array.html +146 -0
- data/docs/api/classes/Date.html +157 -0
- data/docs/api/classes/DateTime.html +178 -0
- data/docs/api/classes/Fixnum.html +146 -0
- data/docs/api/classes/Float.html +146 -0
- data/docs/api/classes/Icalendar/Alarm.html +184 -0
- data/docs/api/classes/Icalendar/Base.html +118 -0
- data/docs/api/classes/Icalendar/Calendar.html +411 -0
- data/docs/api/classes/Icalendar/Component.html +306 -0
- data/docs/api/classes/Icalendar/DateProp.html +187 -0
- data/docs/api/classes/Icalendar/DateProp/ClassMethods.html +195 -0
- data/docs/api/classes/Icalendar/Event.html +202 -0
- data/docs/api/classes/Icalendar/Freebusy.html +157 -0
- data/docs/api/classes/Icalendar/InvalidComponentClass.html +117 -0
- data/docs/api/classes/Icalendar/InvalidPropertyValue.html +117 -0
- data/docs/api/classes/Icalendar/Journal.html +190 -0
- data/docs/api/classes/Icalendar/Parameter.html +166 -0
- data/docs/api/classes/Icalendar/Parser.html +447 -0
- data/docs/api/classes/Icalendar/Timezone.html +197 -0
- data/docs/api/classes/Icalendar/Todo.html +199 -0
- data/docs/api/classes/String.html +160 -0
- data/docs/api/classes/Time.html +161 -0
- data/docs/api/created.rid +1 -0
- data/docs/api/files/COPYING.html +163 -0
- data/docs/api/files/GPL.html +531 -0
- data/docs/api/files/README.html +241 -0
- data/docs/api/files/lib/icalendar/base_rb.html +108 -0
- data/docs/api/files/lib/icalendar/calendar_rb.html +101 -0
- data/docs/api/files/lib/icalendar/component/alarm_rb.html +101 -0
- data/docs/api/files/lib/icalendar/component/event_rb.html +101 -0
- data/docs/api/files/lib/icalendar/component/freebusy_rb.html +101 -0
- data/docs/api/files/lib/icalendar/component/journal_rb.html +101 -0
- data/docs/api/files/lib/icalendar/component/timezone_rb.html +101 -0
- data/docs/api/files/lib/icalendar/component/todo_rb.html +101 -0
- data/docs/api/files/lib/icalendar/component_rb.html +101 -0
- data/docs/api/files/lib/icalendar/conversions_rb.html +108 -0
- data/docs/api/files/lib/icalendar/helpers_rb.html +101 -0
- data/docs/api/files/lib/icalendar/parameter_rb.html +101 -0
- data/docs/api/files/lib/icalendar/parser_rb.html +109 -0
- data/docs/api/files/lib/icalendar_rb.html +118 -0
- data/docs/api/fr_class_index.html +48 -0
- data/docs/api/fr_file_index.html +43 -0
- data/docs/api/fr_method_index.html +63 -0
- data/docs/api/index.html +24 -0
- data/docs/api/rdoc-style.css +208 -0
- data/docs/examples/create_cal.rb +40 -0
- data/docs/examples/parse_cal.rb +19 -0
- data/docs/examples/single_event.ics +18 -0
- data/docs/rfcs/rfc2425.pdf +0 -0
- data/docs/rfcs/rfc2426.pdf +0 -0
- data/docs/rfcs/rfc2445.pdf +0 -0
- data/docs/rfcs/rfc2446.pdf +0 -0
- data/docs/rfcs/rfc2447.pdf +0 -0
- data/docs/rfcs/rfc3283.txt +738 -0
- data/lib/icalendar.rb +27 -0
- data/lib/icalendar/#helpers.rb# +92 -0
- data/lib/icalendar/base.rb +31 -0
- data/lib/icalendar/calendar.rb +112 -0
- data/lib/icalendar/component.rb +253 -0
- data/lib/icalendar/component/alarm.rb +35 -0
- data/lib/icalendar/component/event.rb +68 -0
- data/lib/icalendar/component/freebusy.rb +35 -0
- data/lib/icalendar/component/journal.rb +61 -0
- data/lib/icalendar/component/timezone.rb +43 -0
- data/lib/icalendar/component/todo.rb +65 -0
- data/lib/icalendar/conversions.rb +115 -0
- data/lib/icalendar/helpers.rb +109 -0
- data/lib/icalendar/parameter.rb +33 -0
- data/lib/icalendar/parser.rb +395 -0
- data/test/calendar_test.rb +46 -0
- data/test/component/event_test.rb +47 -0
- data/test/component_test.rb +74 -0
- data/test/parser_test.rb +83 -0
- data/test/property_helpers.rb +35 -0
- data/test/simplecal.ics +119 -0
- data/test/single_event.ics +23 -0
- metadata +135 -0
@@ -0,0 +1,47 @@
|
|
1
|
+
$:.unshift File.join(File.dirname(__FILE__), "..", "lib")
|
2
|
+
|
3
|
+
require 'test/unit'
|
4
|
+
require 'icalendar'
|
5
|
+
|
6
|
+
# Define a test event
|
7
|
+
testEvent = <<EOS
|
8
|
+
BEGIN:VEVENT
|
9
|
+
UID:19970901T130000Z-123401@host.com
|
10
|
+
DTSTAMP:19970901T1300Z
|
11
|
+
DTSTART:19970903T163000Z
|
12
|
+
DTEND:19970903T190000Z
|
13
|
+
SUMMARY:Annual Employee Review
|
14
|
+
CLASS:PRIVATE
|
15
|
+
CATEGORIES:BUSINESS,HUMAN RESOURCES
|
16
|
+
END:VEVENT
|
17
|
+
EOS
|
18
|
+
|
19
|
+
class TestVevent < Test::Unit::TestCase
|
20
|
+
|
21
|
+
# Create a calendar with an event for each test.
|
22
|
+
def setup
|
23
|
+
@cal = Icalendar::Calendar.new
|
24
|
+
@event = Icalendar::Event.new
|
25
|
+
end
|
26
|
+
|
27
|
+
def test_new
|
28
|
+
assert(@event)
|
29
|
+
end
|
30
|
+
|
31
|
+
# Properties that can only occur once per event
|
32
|
+
def test_single_properties
|
33
|
+
@event.klass = "PRIVATE"
|
34
|
+
|
35
|
+
@cal.add(@event)
|
36
|
+
|
37
|
+
cals = Icalendar::Parser.new(@cal.to_ical).parse
|
38
|
+
cal2 = cals.first
|
39
|
+
event2 = cal2.events.first
|
40
|
+
|
41
|
+
assert_equal(event2.klass, "PRIVATE")
|
42
|
+
end
|
43
|
+
|
44
|
+
# def test_restricted_properties
|
45
|
+
# end
|
46
|
+
|
47
|
+
end
|
@@ -0,0 +1,74 @@
|
|
1
|
+
$:.unshift File.join(File.dirname(__FILE__), "..", "lib")
|
2
|
+
|
3
|
+
require 'date'
|
4
|
+
require 'test/unit'
|
5
|
+
require 'icalendar'
|
6
|
+
|
7
|
+
class TestComponent < Test::Unit::TestCase
|
8
|
+
|
9
|
+
# Create a calendar with an event for each test.
|
10
|
+
def setup
|
11
|
+
@cal = Icalendar::Calendar.new
|
12
|
+
@event = Icalendar::Event.new
|
13
|
+
end
|
14
|
+
|
15
|
+
def test_ical_property
|
16
|
+
# No alias but it does have a prop_name
|
17
|
+
assert_equal(@event.klass?, false)
|
18
|
+
@event.klass = "PRIVATE"
|
19
|
+
assert_equal(@event.klass?, true)
|
20
|
+
assert_equal(@event.klass, "PRIVATE")
|
21
|
+
|
22
|
+
# Check that both dtstart and its alias start work correctly
|
23
|
+
date = DateTime.new(2005, 02, 05, 23, 24, 25)
|
24
|
+
@event.dtend = date
|
25
|
+
assert_equal(@event.dtend.year, date.year)
|
26
|
+
|
27
|
+
date2 = DateTime.new(2005, 02, 05, 23, 24, 26)
|
28
|
+
@event.end = date2
|
29
|
+
assert_equal(@event.end.year, date2.year)
|
30
|
+
end
|
31
|
+
|
32
|
+
def test_ical_multi_property
|
33
|
+
# Query
|
34
|
+
assert_equal(@event.comments?, false)
|
35
|
+
@event.comments = []
|
36
|
+
assert_equal(@event.comments?, true)
|
37
|
+
|
38
|
+
# Should return an empty array, rather than nil
|
39
|
+
assert_equal(@event.comments.size, 0)
|
40
|
+
|
41
|
+
# Add and remove
|
42
|
+
@event.add_comment "c1"
|
43
|
+
@event.add_comment "c2"
|
44
|
+
assert_equal(@event.comments.size, 2)
|
45
|
+
assert_equal(@event.comments, ["c1", "c2"])
|
46
|
+
@event.remove_comment "c1"
|
47
|
+
assert_equal(@event.comments, ["c2"])
|
48
|
+
|
49
|
+
# Set & get whole array
|
50
|
+
foo = ["as", "df"]
|
51
|
+
@event.comments = foo
|
52
|
+
assert_equal(@event.comments, foo)
|
53
|
+
|
54
|
+
foo = ["asdf", "qwer"]
|
55
|
+
@event.comments(foo)
|
56
|
+
assert_equal(@event.comments, foo)
|
57
|
+
|
58
|
+
# Error cases
|
59
|
+
assert_raise(ArgumentError) { @event.comments("asdf") }
|
60
|
+
end
|
61
|
+
|
62
|
+
def test_bad_args
|
63
|
+
# Single property
|
64
|
+
assert_raise(NotImplementedError) do
|
65
|
+
@event.klass = {}
|
66
|
+
end
|
67
|
+
|
68
|
+
# Multi property
|
69
|
+
assert_raise(NotImplementedError) do
|
70
|
+
@event.comments = [{}]
|
71
|
+
end
|
72
|
+
end
|
73
|
+
|
74
|
+
end
|
data/test/parser_test.rb
ADDED
@@ -0,0 +1,83 @@
|
|
1
|
+
$:.unshift(File.dirname(__FILE__) + '/../lib')
|
2
|
+
|
3
|
+
require 'test/unit'
|
4
|
+
require 'icalendar'
|
5
|
+
|
6
|
+
# This is a test class for the calendar parser.
|
7
|
+
class TestIcalendarParser < Test::Unit::TestCase
|
8
|
+
|
9
|
+
# First make sure that we can run the parser and get back objects.
|
10
|
+
def test_new
|
11
|
+
# Make sure we don't take invalid object types.
|
12
|
+
assert_raise(ArgumentError) { Icalendar::Parser.new(20) }
|
13
|
+
|
14
|
+
# Make sure we get an object back from parsing a file
|
15
|
+
calFile = File.open("test/single_event.ics")
|
16
|
+
cals = Icalendar::Parser.new(calFile).parse
|
17
|
+
assert(cals)
|
18
|
+
calFile.close
|
19
|
+
|
20
|
+
# Make sure we get an object back from parsing a string
|
21
|
+
calString = File.open("test/single_event.ics").read
|
22
|
+
cals = Icalendar::Parser.new(calString).parse
|
23
|
+
assert(cals)
|
24
|
+
end
|
25
|
+
|
26
|
+
# Now go through and make sure the object is correct using the
|
27
|
+
# dynamically generated raw interfaces.
|
28
|
+
def test_file_parse
|
29
|
+
calFile = File.open("test/single_event.ics")
|
30
|
+
parser = Icalendar::Parser.new(calFile)
|
31
|
+
cals = parser.parse
|
32
|
+
calFile.close
|
33
|
+
do_asserts(cals)
|
34
|
+
end
|
35
|
+
|
36
|
+
def test_string_parse
|
37
|
+
# Make sure we get an object back from parsing a string
|
38
|
+
calString = File.open("test/single_event.ics").read
|
39
|
+
cals = Icalendar::Parser.new(calString).parse
|
40
|
+
do_asserts(cals)
|
41
|
+
end
|
42
|
+
|
43
|
+
# Just a helper method so we don't have to repeat the same tests.
|
44
|
+
def do_asserts(cals)
|
45
|
+
# Should just get one calendar back.
|
46
|
+
assert_equal(1, cals.size)
|
47
|
+
|
48
|
+
cal = cals.first
|
49
|
+
|
50
|
+
# Calendar properties
|
51
|
+
assert_equal("2.0", cal.version)
|
52
|
+
assert_equal("bsprodidfortestabc123", cal.prodid)
|
53
|
+
|
54
|
+
# Now the event
|
55
|
+
assert_equal(1, cal.events.size)
|
56
|
+
|
57
|
+
event = cal.events.first
|
58
|
+
assert_equal("bsuidfortestabc123", event.uid)
|
59
|
+
|
60
|
+
summary = "This is a really long summary to test the method of unfolding lines so I'm just going to make it a whole bunch of lines."
|
61
|
+
|
62
|
+
assert_equal(summary, event.summary)
|
63
|
+
|
64
|
+
start = DateTime.parse("20050120T170000")
|
65
|
+
daend = DateTime.parse("20050120T184500")
|
66
|
+
stamp = DateTime.parse("20050118T211523Z")
|
67
|
+
assert_equal(start, event.dtstart)
|
68
|
+
assert_equal(daend, event.dtend)
|
69
|
+
assert_equal(stamp, event.dtstamp)
|
70
|
+
|
71
|
+
organizer = URI.parse("mailto:joebob@random.net")
|
72
|
+
assert_equal(organizer, event.organizer)
|
73
|
+
|
74
|
+
ats = event.attachments
|
75
|
+
assert_equal(2, ats.size)
|
76
|
+
attachment = URI.parse("http://bush.sucks.org/impeach/him.rhtml")
|
77
|
+
assert_equal(attachment, ats[0])
|
78
|
+
attachment = URI.parse("http://corporations-dominate.existence.net/why.rhtml")
|
79
|
+
assert_equal(attachment, ats[1])
|
80
|
+
|
81
|
+
|
82
|
+
end
|
83
|
+
end
|
@@ -0,0 +1,35 @@
|
|
1
|
+
module PropertyHelpers
|
2
|
+
|
3
|
+
### Single occurrence properties
|
4
|
+
|
5
|
+
def set_klass(event)
|
6
|
+
event.klass = "PRIVATE"
|
7
|
+
event.klass = "PUBLIC"
|
8
|
+
end
|
9
|
+
|
10
|
+
def check_klass(event)
|
11
|
+
assert_equal(event.klass, "PUBLIC")
|
12
|
+
end
|
13
|
+
|
14
|
+
def set_created(event)
|
15
|
+
event.
|
16
|
+
end
|
17
|
+
|
18
|
+
# Restricted occurrence properties
|
19
|
+
def set_dtend
|
20
|
+
|
21
|
+
end
|
22
|
+
|
23
|
+
def set_duration
|
24
|
+
|
25
|
+
end
|
26
|
+
|
27
|
+
# Multiple occurrence properties
|
28
|
+
def set_attach
|
29
|
+
|
30
|
+
end
|
31
|
+
|
32
|
+
def set_attendee
|
33
|
+
|
34
|
+
end
|
35
|
+
end
|
data/test/simplecal.ics
ADDED
@@ -0,0 +1,119 @@
|
|
1
|
+
BEGIN:VCALENDAR
|
2
|
+
VERSION
|
3
|
+
:2.0
|
4
|
+
PRODID
|
5
|
+
:-//Mozilla.org/NONSGML Mozilla Calendar V1.0//EN
|
6
|
+
BEGIN:VEVENT
|
7
|
+
UID
|
8
|
+
:a08863de-1dd1-11b2-9445-d6248402dd19
|
9
|
+
SUMMARY
|
10
|
+
:Hybrid Embedded Systems. This is a really long summary
|
11
|
+
to test the method of unfolding lines
|
12
|
+
so I'm just going to ma
|
13
|
+
ke it
|
14
|
+
a whole
|
15
|
+
bunch of lines.
|
16
|
+
CATEGORIES
|
17
|
+
:Personal
|
18
|
+
STATUS
|
19
|
+
:CONFIRMED
|
20
|
+
CLASS
|
21
|
+
:PRIVATE
|
22
|
+
RRULE
|
23
|
+
:FREQ=WEEKLY;INTERVAL=1;BYDAY=TH
|
24
|
+
DTSTART
|
25
|
+
:20050120T170000
|
26
|
+
DTEND
|
27
|
+
:20050120T184500
|
28
|
+
DTSTAMP
|
29
|
+
:20050118T211523Z
|
30
|
+
END:VEVENT
|
31
|
+
BEGIN:VEVENT
|
32
|
+
UID
|
33
|
+
:6226e2f6-1dd2-11b2-9ad7-9b8d2d642229
|
34
|
+
SUMMARY
|
35
|
+
:Databases
|
36
|
+
LOCATION
|
37
|
+
:ECCS 1b12
|
38
|
+
CATEGORIES
|
39
|
+
:Personal
|
40
|
+
STATUS
|
41
|
+
:CONFIRMED
|
42
|
+
CLASS
|
43
|
+
:PRIVATE
|
44
|
+
X-MOZILLA-ALARM-DEFAULT-LENGTH
|
45
|
+
:30
|
46
|
+
X-MOZILLA-LASTALARMACK
|
47
|
+
:20050118T141054
|
48
|
+
RRULE
|
49
|
+
:FREQ=WEEKLY;INTERVAL=1;BYDAY=MO,WE
|
50
|
+
DTSTART
|
51
|
+
:20050117T173000
|
52
|
+
DTEND
|
53
|
+
:20050117T184500
|
54
|
+
DTSTAMP
|
55
|
+
:20050118T210648Z
|
56
|
+
LAST-MODIFIED
|
57
|
+
:20050118T211954Z
|
58
|
+
BEGIN:VALARM
|
59
|
+
TRIGGER
|
60
|
+
;VALUE=DURATION
|
61
|
+
:-PT30M
|
62
|
+
END:VALARM
|
63
|
+
END:VEVENT
|
64
|
+
BEGIN:VEVENT
|
65
|
+
UID
|
66
|
+
:d8f4468a-1dd1-11b2-9e0a-bbe95143dbed
|
67
|
+
SUMMARY
|
68
|
+
:Software Radios
|
69
|
+
LOCATION
|
70
|
+
:ECCR 1b06
|
71
|
+
CATEGORIES
|
72
|
+
:Personal
|
73
|
+
STATUS
|
74
|
+
:CONFIRMED
|
75
|
+
CLASS
|
76
|
+
:PRIVATE
|
77
|
+
X-MOZILLA-ALARM-DEFAULT-LENGTH
|
78
|
+
:30
|
79
|
+
X-MOZILLA-LASTALARMACK
|
80
|
+
:20050118T141351
|
81
|
+
RRULE
|
82
|
+
:FREQ=WEEKLY;INTERVAL=1;BYDAY=MO,WE
|
83
|
+
DTSTART
|
84
|
+
:20050117T100000
|
85
|
+
DTEND
|
86
|
+
:20050117T111500
|
87
|
+
DTSTAMP
|
88
|
+
:20050118T211304Z
|
89
|
+
LAST-MODIFIED
|
90
|
+
:20050118T212016Z
|
91
|
+
BEGIN:VALARM
|
92
|
+
TRIGGER
|
93
|
+
;VALUE=DURATION
|
94
|
+
:-PT30M
|
95
|
+
END:VALARM
|
96
|
+
END:VEVENT
|
97
|
+
BEGIN:VEVENT
|
98
|
+
UID
|
99
|
+
:9acd4cc8-1dd1-11b2-a65e-b276ad1df3b9
|
100
|
+
SUMMARY
|
101
|
+
:Israel & Palestine peace accord talk...
|
102
|
+
LOCATION
|
103
|
+
:Chem. 140
|
104
|
+
CATEGORIES
|
105
|
+
:Personal
|
106
|
+
STATUS
|
107
|
+
:CONFIRMED
|
108
|
+
CLASS
|
109
|
+
:PRIVATE
|
110
|
+
DTSTART
|
111
|
+
:20050118T193000
|
112
|
+
DTEND
|
113
|
+
:20050118T203000
|
114
|
+
DTSTAMP
|
115
|
+
:20050118T212943Z
|
116
|
+
LAST-MODIFIED
|
117
|
+
:20050118T213355Z
|
118
|
+
END:VEVENT
|
119
|
+
END:VCALENDAR
|
@@ -0,0 +1,23 @@
|
|
1
|
+
BEGIN:VCALENDAR
|
2
|
+
VERSION:2.0
|
3
|
+
PRODID:bsprodidfortestabc123
|
4
|
+
BEGIN:VEVENT
|
5
|
+
UID:bsuidfortestabc123
|
6
|
+
ORGANIZER:mailto:joebob@random.net
|
7
|
+
ATTACH:http://bush.sucks.org/impeach/him.rhtml
|
8
|
+
ATTACH:http://corporations-dominate.existence.net/why.rhtml
|
9
|
+
SUMMARY:This is a really long summary
|
10
|
+
to test the method of unfolding lines
|
11
|
+
so I'm just going to ma
|
12
|
+
ke it
|
13
|
+
a whol
|
14
|
+
e
|
15
|
+
bunch of lines.
|
16
|
+
CLASS:PRIVATE
|
17
|
+
PRIORITY:2
|
18
|
+
GEO:37.386013;-122.0829322
|
19
|
+
DTSTART;TZID=US-Mountain:20050120T170000
|
20
|
+
DTEND:20050120T184500
|
21
|
+
DTSTAMP:20050118T211523Z
|
22
|
+
END:VEVENT
|
23
|
+
END:VCALENDAR
|
metadata
ADDED
@@ -0,0 +1,135 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
rubygems_version: 0.8.1
|
3
|
+
specification_version: 1
|
4
|
+
name: icalendar
|
5
|
+
version: !ruby/object:Gem::Version
|
6
|
+
version: "0.95"
|
7
|
+
date: 2005-06-12
|
8
|
+
summary: A ruby implementation of the iCalendar specification (RFC-2445).
|
9
|
+
require_paths:
|
10
|
+
- lib
|
11
|
+
author: Jeff Rose
|
12
|
+
email: rosejn@gmail.com
|
13
|
+
homepage: http://icalendar.rubyforge.org/
|
14
|
+
rubyforge_project:
|
15
|
+
description: "Implements the iCalendar specification (RFC-2445) in Ruby. This allows for the
|
16
|
+
generation and parsing of .ics files, which are used by a variety of calendaring
|
17
|
+
applications."
|
18
|
+
autorequire: icalendar
|
19
|
+
default_executable:
|
20
|
+
bindir: bin
|
21
|
+
has_rdoc: true
|
22
|
+
required_ruby_version: !ruby/object:Gem::Version::Requirement
|
23
|
+
requirements:
|
24
|
+
-
|
25
|
+
- ">"
|
26
|
+
- !ruby/object:Gem::Version
|
27
|
+
version: 0.0.0
|
28
|
+
version:
|
29
|
+
platform: ruby
|
30
|
+
files:
|
31
|
+
- test/calendar_test.rb
|
32
|
+
- test/single_event.ics
|
33
|
+
- test/simplecal.ics
|
34
|
+
- test/component
|
35
|
+
- test/property_helpers.rb
|
36
|
+
- test/parser_test.rb
|
37
|
+
- test/component_test.rb
|
38
|
+
- test/component/event_test.rb
|
39
|
+
- lib/icalendar
|
40
|
+
- lib/icalendar.rb
|
41
|
+
- lib/icalendar/parser.rb
|
42
|
+
- lib/icalendar/calendar.rb
|
43
|
+
- lib/icalendar/parameter.rb
|
44
|
+
- lib/icalendar/helpers.rb
|
45
|
+
- lib/icalendar/component
|
46
|
+
- "lib/icalendar/#helpers.rb#"
|
47
|
+
- lib/icalendar/component.rb
|
48
|
+
- lib/icalendar/base.rb
|
49
|
+
- lib/icalendar/conversions.rb
|
50
|
+
- lib/icalendar/component/freebusy.rb
|
51
|
+
- lib/icalendar/component/journal.rb
|
52
|
+
- lib/icalendar/component/todo.rb
|
53
|
+
- lib/icalendar/component/event.rb
|
54
|
+
- lib/icalendar/component/alarm.rb
|
55
|
+
- lib/icalendar/component/timezone.rb
|
56
|
+
- docs/api
|
57
|
+
- docs/rfcs
|
58
|
+
- docs/examples
|
59
|
+
- docs/api/files
|
60
|
+
- docs/api/index.html
|
61
|
+
- docs/api/rdoc-style.css
|
62
|
+
- docs/api/fr_method_index.html
|
63
|
+
- docs/api/fr_class_index.html
|
64
|
+
- docs/api/fr_file_index.html
|
65
|
+
- docs/api/created.rid
|
66
|
+
- docs/api/classes
|
67
|
+
- docs/api/files/lib
|
68
|
+
- docs/api/files/GPL.html
|
69
|
+
- docs/api/files/README.html
|
70
|
+
- docs/api/files/COPYING.html
|
71
|
+
- docs/api/files/lib/icalendar
|
72
|
+
- docs/api/files/lib/icalendar_rb.html
|
73
|
+
- docs/api/files/lib/icalendar/component
|
74
|
+
- docs/api/files/lib/icalendar/parser_rb.html
|
75
|
+
- docs/api/files/lib/icalendar/component_rb.html
|
76
|
+
- docs/api/files/lib/icalendar/parameter_rb.html
|
77
|
+
- docs/api/files/lib/icalendar/calendar_rb.html
|
78
|
+
- docs/api/files/lib/icalendar/helpers_rb.html
|
79
|
+
- docs/api/files/lib/icalendar/base_rb.html
|
80
|
+
- docs/api/files/lib/icalendar/conversions_rb.html
|
81
|
+
- docs/api/files/lib/icalendar/component/journal_rb.html
|
82
|
+
- docs/api/files/lib/icalendar/component/event_rb.html
|
83
|
+
- docs/api/files/lib/icalendar/component/todo_rb.html
|
84
|
+
- docs/api/files/lib/icalendar/component/timezone_rb.html
|
85
|
+
- docs/api/files/lib/icalendar/component/alarm_rb.html
|
86
|
+
- docs/api/files/lib/icalendar/component/freebusy_rb.html
|
87
|
+
- docs/api/classes/String.html
|
88
|
+
- docs/api/classes/DateTime.html
|
89
|
+
- docs/api/classes/Icalendar
|
90
|
+
- docs/api/classes/Float.html
|
91
|
+
- docs/api/classes/Fixnum.html
|
92
|
+
- docs/api/classes/Array.html
|
93
|
+
- docs/api/classes/Time.html
|
94
|
+
- docs/api/classes/Date.html
|
95
|
+
- docs/api/classes/Icalendar/Parser.html
|
96
|
+
- docs/api/classes/Icalendar/InvalidPropertyValue.html
|
97
|
+
- docs/api/classes/Icalendar/Alarm.html
|
98
|
+
- docs/api/classes/Icalendar/Todo.html
|
99
|
+
- docs/api/classes/Icalendar/Journal.html
|
100
|
+
- docs/api/classes/Icalendar/Component.html
|
101
|
+
- docs/api/classes/Icalendar/Parameter.html
|
102
|
+
- docs/api/classes/Icalendar/Timezone.html
|
103
|
+
- docs/api/classes/Icalendar/Calendar.html
|
104
|
+
- docs/api/classes/Icalendar/Base.html
|
105
|
+
- docs/api/classes/Icalendar/Freebusy.html
|
106
|
+
- docs/api/classes/Icalendar/Event.html
|
107
|
+
- docs/api/classes/Icalendar/DateProp.html
|
108
|
+
- docs/api/classes/Icalendar/DateProp
|
109
|
+
- docs/api/classes/Icalendar/InvalidComponentClass.html
|
110
|
+
- docs/api/classes/Icalendar/DateProp/ClassMethods.html
|
111
|
+
- docs/rfcs/rfc2425.pdf
|
112
|
+
- docs/rfcs/rfc2426.pdf
|
113
|
+
- docs/rfcs/rfc2445.pdf
|
114
|
+
- docs/rfcs/rfc2446.pdf
|
115
|
+
- docs/rfcs/rfc2447.pdf
|
116
|
+
- docs/rfcs/rfc3283.txt
|
117
|
+
- docs/examples/create_cal.rb
|
118
|
+
- docs/examples/single_event.ics
|
119
|
+
- docs/examples/parse_cal.rb
|
120
|
+
- Rakefile
|
121
|
+
- README
|
122
|
+
- COPYING
|
123
|
+
- GPL
|
124
|
+
test_files: []
|
125
|
+
rdoc_options:
|
126
|
+
- "--main"
|
127
|
+
- README
|
128
|
+
extra_rdoc_files:
|
129
|
+
- README
|
130
|
+
- COPYING
|
131
|
+
- GPL
|
132
|
+
executables: []
|
133
|
+
extensions: []
|
134
|
+
requirements: []
|
135
|
+
dependencies: []
|