icalendar 0.95 → 0.96
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/README +9 -4
- data/Rakefile +4 -3
- data/docs/examples/parse_cal.rb +1 -1
- data/lib/icalendar/calendar.rb +15 -51
- data/lib/icalendar/component.rb +75 -21
- data/lib/icalendar/component/event.rb +60 -11
- data/lib/icalendar/component/timezone.rb +31 -7
- data/lib/icalendar/component/todo.rb +1 -1
- data/lib/icalendar/conversions.rb +3 -1
- data/lib/icalendar/foo.rb +394 -0
- data/lib/icalendar/parser.rb +29 -22
- data/test/calendar_test.rb +37 -37
- data/test/component/event_test.rb +1 -1
- data/test/component_test.rb +56 -56
- data/test/interactive.rb +15 -0
- data/test/life.ics +45 -0
- data/test/parameter_test.rb +20 -0
- metadata +23 -70
- data/docs/api/classes/Array.html +0 -146
- data/docs/api/classes/Date.html +0 -157
- data/docs/api/classes/DateTime.html +0 -178
- data/docs/api/classes/Fixnum.html +0 -146
- data/docs/api/classes/Float.html +0 -146
- data/docs/api/classes/Icalendar/Alarm.html +0 -184
- data/docs/api/classes/Icalendar/Base.html +0 -118
- data/docs/api/classes/Icalendar/Calendar.html +0 -411
- data/docs/api/classes/Icalendar/Component.html +0 -306
- data/docs/api/classes/Icalendar/DateProp.html +0 -187
- data/docs/api/classes/Icalendar/DateProp/ClassMethods.html +0 -195
- data/docs/api/classes/Icalendar/Event.html +0 -202
- data/docs/api/classes/Icalendar/Freebusy.html +0 -157
- data/docs/api/classes/Icalendar/InvalidComponentClass.html +0 -117
- data/docs/api/classes/Icalendar/InvalidPropertyValue.html +0 -117
- data/docs/api/classes/Icalendar/Journal.html +0 -190
- data/docs/api/classes/Icalendar/Parameter.html +0 -166
- data/docs/api/classes/Icalendar/Parser.html +0 -447
- data/docs/api/classes/Icalendar/Timezone.html +0 -197
- data/docs/api/classes/Icalendar/Todo.html +0 -199
- data/docs/api/classes/String.html +0 -160
- data/docs/api/classes/Time.html +0 -161
- data/docs/api/created.rid +0 -1
- data/docs/api/files/COPYING.html +0 -163
- data/docs/api/files/GPL.html +0 -531
- data/docs/api/files/README.html +0 -241
- data/docs/api/files/lib/icalendar/base_rb.html +0 -108
- data/docs/api/files/lib/icalendar/calendar_rb.html +0 -101
- data/docs/api/files/lib/icalendar/component/alarm_rb.html +0 -101
- data/docs/api/files/lib/icalendar/component/event_rb.html +0 -101
- data/docs/api/files/lib/icalendar/component/freebusy_rb.html +0 -101
- data/docs/api/files/lib/icalendar/component/journal_rb.html +0 -101
- data/docs/api/files/lib/icalendar/component/timezone_rb.html +0 -101
- data/docs/api/files/lib/icalendar/component/todo_rb.html +0 -101
- data/docs/api/files/lib/icalendar/component_rb.html +0 -101
- data/docs/api/files/lib/icalendar/conversions_rb.html +0 -108
- data/docs/api/files/lib/icalendar/helpers_rb.html +0 -101
- data/docs/api/files/lib/icalendar/parameter_rb.html +0 -101
- data/docs/api/files/lib/icalendar/parser_rb.html +0 -109
- data/docs/api/files/lib/icalendar_rb.html +0 -118
- data/docs/api/fr_class_index.html +0 -48
- data/docs/api/fr_file_index.html +0 -43
- data/docs/api/fr_method_index.html +0 -63
- data/docs/api/index.html +0 -24
- data/docs/api/rdoc-style.css +0 -208
- data/lib/icalendar/#helpers.rb# +0 -92
data/lib/icalendar/parser.rb
CHANGED
|
@@ -164,18 +164,25 @@ module Icalendar
|
|
|
164
164
|
break
|
|
165
165
|
elsif name == "BEGIN" # New component
|
|
166
166
|
case(fields[:value])
|
|
167
|
-
when "VEVENT"
|
|
168
|
-
component.
|
|
169
|
-
when "VTODO"
|
|
170
|
-
component.
|
|
171
|
-
when "
|
|
172
|
-
component.
|
|
173
|
-
when "
|
|
174
|
-
component.
|
|
175
|
-
when "
|
|
176
|
-
component.
|
|
177
|
-
when "
|
|
178
|
-
component.
|
|
167
|
+
when "VEVENT" # Event
|
|
168
|
+
component.add_component parse_component(Event.new)
|
|
169
|
+
when "VTODO" # Todo entry
|
|
170
|
+
component.add_component parse_component(Todo.new)
|
|
171
|
+
when "VALARM" # Alarm sub-component for event and todo
|
|
172
|
+
component.add_component parse_component(Alarm.new)
|
|
173
|
+
when "VJOURNAL" # Journal entry
|
|
174
|
+
component.add_component parse_component(Journal.new)
|
|
175
|
+
when "VFREEBUSY" # Free/Busy section
|
|
176
|
+
component.add_component parse_component(Freebusy.new)
|
|
177
|
+
when "VTIMEZONE" # Timezone specification
|
|
178
|
+
component.add_component parse_component(Timezone.new)
|
|
179
|
+
when "STANDARD" # Standard time sub-component for timezone
|
|
180
|
+
component.add_component parse_component(Standard.new)
|
|
181
|
+
when "DAYLIGHT" # Daylight time sub-component for timezone
|
|
182
|
+
component.add_component parse_component(Daylight.new)
|
|
183
|
+
else # Uknown component type, skip to matching end
|
|
184
|
+
until ((line = next_line) == "END:#{fields[:value]}"); end
|
|
185
|
+
next
|
|
179
186
|
end
|
|
180
187
|
else # If its not a component then it should be a property
|
|
181
188
|
|
|
@@ -191,11 +198,11 @@ module Icalendar
|
|
|
191
198
|
val = fields[:value]
|
|
192
199
|
end
|
|
193
200
|
|
|
194
|
-
if component.multi_property?(name.upcase)
|
|
201
|
+
if component.multi_property?(name.upcase)
|
|
195
202
|
val = [val]
|
|
196
203
|
|
|
197
204
|
if fields[:params].empty?
|
|
198
|
-
params = [
|
|
205
|
+
params = []
|
|
199
206
|
else
|
|
200
207
|
params = fields[:params]
|
|
201
208
|
end
|
|
@@ -231,21 +238,17 @@ module Icalendar
|
|
|
231
238
|
paramslist = $2
|
|
232
239
|
value = $3
|
|
233
240
|
|
|
241
|
+
# Parse the parameters
|
|
234
242
|
params = {}
|
|
235
|
-
|
|
236
|
-
# Collect the params, if any.
|
|
237
243
|
if paramslist.size > 1
|
|
238
|
-
|
|
239
|
-
# v3.0 and v2.1 params
|
|
240
244
|
paramslist.scan( %r{#{PARAM}}i ) do
|
|
241
245
|
|
|
242
|
-
#
|
|
246
|
+
# parameter names are case-insensitive, and multi-valued
|
|
243
247
|
pname = $1
|
|
244
248
|
pvals = $3
|
|
245
249
|
|
|
246
|
-
#
|
|
247
|
-
#
|
|
248
|
-
# param).
|
|
250
|
+
# If their isn't an '=' sign then we need to do some custom
|
|
251
|
+
# business. Defaults to 'type'
|
|
249
252
|
if $2 == ""
|
|
250
253
|
pvals = $1
|
|
251
254
|
case $1
|
|
@@ -260,9 +263,13 @@ module Icalendar
|
|
|
260
263
|
end
|
|
261
264
|
end
|
|
262
265
|
|
|
266
|
+
# Make entries into the params dictionary where the name
|
|
267
|
+
# is the key and the value is an array of values.
|
|
263
268
|
unless params.key? pname
|
|
264
269
|
params[pname] = []
|
|
265
270
|
end
|
|
271
|
+
|
|
272
|
+
# Save all the values into the array.
|
|
266
273
|
pvals.scan( %r{(#{PVALUE})} ) do
|
|
267
274
|
if $1.size > 0
|
|
268
275
|
params[pname] << $1
|
data/test/calendar_test.rb
CHANGED
|
@@ -6,41 +6,41 @@ require 'icalendar'
|
|
|
6
6
|
require 'date'
|
|
7
7
|
|
|
8
8
|
class TestCalendar < Test::Unit::TestCase
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
9
|
+
# Generate a calendar using the raw api, and then spit it out
|
|
10
|
+
# as a string. Parse the string and make sure everything matches up.
|
|
11
|
+
def test_raw_generation
|
|
12
|
+
# Create a fresh calendar
|
|
13
|
+
cal = Icalendar::Calendar.new
|
|
14
|
+
|
|
15
|
+
cal.calscale = "GREGORIAN"
|
|
16
|
+
cal.version = "3.2"
|
|
17
|
+
cal.prodid = "test-prodid"
|
|
18
|
+
|
|
19
|
+
# Now generate the string and then parse it so we can verify
|
|
20
|
+
# that everything was set, generated and parsed correctly.
|
|
21
|
+
calString = cal.to_ical
|
|
22
|
+
|
|
23
|
+
cals = Icalendar::Parser.new(calString).parse
|
|
24
|
+
|
|
25
|
+
cal2 = cals.first
|
|
26
|
+
assert_equal("GREGORIAN", cal2.calscale)
|
|
27
|
+
assert_equal("3.2", cal2.version)
|
|
28
|
+
assert_equal("test-prodid", cal2.prodid)
|
|
29
|
+
end
|
|
30
|
+
|
|
31
|
+
def test_block_creation
|
|
32
|
+
cal = Icalendar::Calendar.new
|
|
33
|
+
cal.event do
|
|
34
|
+
dtend "19970903T190000Z"
|
|
35
|
+
summary "This is my summary"
|
|
36
|
+
end
|
|
37
|
+
|
|
38
|
+
event = cal.event
|
|
39
|
+
event.dtend = "19970903T190000Z"
|
|
40
|
+
event.summary = "This is my summary"
|
|
41
|
+
|
|
42
|
+
ev = cal.events.each do |ev|
|
|
43
|
+
assert_equal("19970903T190000Z", ev.dtend)
|
|
44
|
+
end
|
|
45
|
+
end
|
|
46
46
|
end
|
data/test/component_test.rb
CHANGED
|
@@ -6,69 +6,69 @@ require 'icalendar'
|
|
|
6
6
|
|
|
7
7
|
class TestComponent < Test::Unit::TestCase
|
|
8
8
|
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
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
14
|
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
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)
|
|
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")
|
|
26
21
|
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
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)
|
|
31
26
|
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
assert_equal(@event.comments?, true)
|
|
37
|
-
|
|
38
|
-
# Should return an empty array, rather than nil
|
|
39
|
-
assert_equal(@event.comments.size, 0)
|
|
27
|
+
date2 = DateTime.new(2005, 02, 05, 23, 24, 26)
|
|
28
|
+
@event.end = date2
|
|
29
|
+
assert_equal(@event.end.year, date2.year)
|
|
30
|
+
end
|
|
40
31
|
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
@event.remove_comment "c1"
|
|
47
|
-
assert_equal(@event.comments, ["c2"])
|
|
32
|
+
def test_ical_multi_property
|
|
33
|
+
# Query
|
|
34
|
+
assert_equal(@event.comments?, false)
|
|
35
|
+
@event.comments = []
|
|
36
|
+
assert_equal(@event.comments?, true)
|
|
48
37
|
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
@event.comments = foo
|
|
52
|
-
assert_equal(@event.comments, foo)
|
|
38
|
+
# Should return an empty array, rather than nil
|
|
39
|
+
assert_equal(@event.comments.size, 0)
|
|
53
40
|
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
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"])
|
|
57
48
|
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
49
|
+
# Set & get whole array
|
|
50
|
+
foo = ["as", "df"]
|
|
51
|
+
@event.comments = foo
|
|
52
|
+
assert_equal(@event.comments, foo)
|
|
61
53
|
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
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
73
|
|
|
74
74
|
end
|
data/test/interactive.rb
ADDED
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
#!/usr/bin/ruby
|
|
2
|
+
|
|
3
|
+
# NOTE: you must have installed ruby-breakpoint in order to use this script.
|
|
4
|
+
# Grab it using gem with "gem install ruby-breakpoint --remote" or download
|
|
5
|
+
# from the website (http://ruby-breakpoint.rubyforge.org/) then run setup.rb
|
|
6
|
+
|
|
7
|
+
$:.unshift(File.dirname(__FILE__) + '/../lib')
|
|
8
|
+
|
|
9
|
+
require 'breakpoint'
|
|
10
|
+
|
|
11
|
+
require 'icalendar'
|
|
12
|
+
|
|
13
|
+
cal = Icalendar::Parser.new(File.new("life.ics")).parse
|
|
14
|
+
|
|
15
|
+
breakpoint
|
data/test/life.ics
ADDED
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
BEGIN:VCALENDAR
|
|
2
|
+
VERSION:2.0
|
|
3
|
+
X-WR-CALNAME:Life
|
|
4
|
+
PRODID:-//Apple Computer\, Inc//iCal 2.0//EN
|
|
5
|
+
X-WR-RELCALID:69FB0467-7E07-4DE7-901D-B70242B3DB25
|
|
6
|
+
X-WR-TIMEZONE:America/Chicago
|
|
7
|
+
CALSCALE:GREGORIAN
|
|
8
|
+
METHOD:PUBLISH
|
|
9
|
+
BEGIN:VTIMEZONE
|
|
10
|
+
TZID:America/Chicago
|
|
11
|
+
LAST-MODIFIED:20050825T194346Z
|
|
12
|
+
BEGIN:DAYLIGHT
|
|
13
|
+
DTSTART:20050403T080000
|
|
14
|
+
TZOFFSETTO:-0500
|
|
15
|
+
TZOFFSETFROM:+0000
|
|
16
|
+
TZNAME:CDT
|
|
17
|
+
END:DAYLIGHT
|
|
18
|
+
BEGIN:STANDARD
|
|
19
|
+
DTSTART:20051030T020000
|
|
20
|
+
TZOFFSETTO:-0600
|
|
21
|
+
TZOFFSETFROM:-0500
|
|
22
|
+
TZNAME:CST
|
|
23
|
+
END:STANDARD
|
|
24
|
+
END:VTIMEZONE
|
|
25
|
+
BEGIN:VEVENT
|
|
26
|
+
UID:bsuidfortestabc123
|
|
27
|
+
ORGANIZER:mailto:joebob@random.net
|
|
28
|
+
ATTACH:http://bush.sucks.org/impeach/him.rhtml
|
|
29
|
+
ATTACH:http://corporations-dominate.existence.net/why.rhtml
|
|
30
|
+
SUMMARY:This is a really long summary
|
|
31
|
+
to test the method of unfolding lines
|
|
32
|
+
so I'm just going to ma
|
|
33
|
+
ke it
|
|
34
|
+
a whol
|
|
35
|
+
e
|
|
36
|
+
bunch of lines.
|
|
37
|
+
CLASS:PRIVATE
|
|
38
|
+
PRIORITY:2
|
|
39
|
+
GEO:37.386013;-122.0829322
|
|
40
|
+
DTSTART;TZID=US-Mountain:20050120T170000
|
|
41
|
+
DTEND:20050120T184500
|
|
42
|
+
DTSTAMP:20050118T211523Z
|
|
43
|
+
END:VEVENT
|
|
44
|
+
END:VCALENDAR
|
|
45
|
+
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
# Test out property parameter functionality
|
|
2
|
+
$:.unshift File.join(File.dirname(__FILE__), "..", "lib")
|
|
3
|
+
|
|
4
|
+
require 'date'
|
|
5
|
+
require 'test/unit'
|
|
6
|
+
require 'icalendar'
|
|
7
|
+
|
|
8
|
+
class TestComponent < Test::Unit::TestCase
|
|
9
|
+
|
|
10
|
+
# Create a calendar with an event for each test.
|
|
11
|
+
def setup
|
|
12
|
+
@cal = Icalendar::Calendar.new
|
|
13
|
+
@event = Icalendar::Event.new
|
|
14
|
+
end
|
|
15
|
+
|
|
16
|
+
def test_property_parameters
|
|
17
|
+
@event.summary = "This is a test summary.",
|
|
18
|
+
{"ALTREP" => "http://my.language.net", "LANGUAGE" => "SPANISH"}
|
|
19
|
+
end
|
|
20
|
+
end
|
metadata
CHANGED
|
@@ -1,14 +1,13 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
|
-
rubygems_version: 0.8.
|
|
2
|
+
rubygems_version: 0.8.11
|
|
3
3
|
specification_version: 1
|
|
4
4
|
name: icalendar
|
|
5
5
|
version: !ruby/object:Gem::Version
|
|
6
|
-
version: "0.
|
|
7
|
-
date: 2005-
|
|
6
|
+
version: "0.96"
|
|
7
|
+
date: 2005-10-10 00:00:00 +02:00
|
|
8
8
|
summary: A ruby implementation of the iCalendar specification (RFC-2445).
|
|
9
9
|
require_paths:
|
|
10
10
|
- lib
|
|
11
|
-
author: Jeff Rose
|
|
12
11
|
email: rosejn@gmail.com
|
|
13
12
|
homepage: http://icalendar.rubyforge.org/
|
|
14
13
|
rubyforge_project:
|
|
@@ -27,95 +26,49 @@ required_ruby_version: !ruby/object:Gem::Version::Requirement
|
|
|
27
26
|
version: 0.0.0
|
|
28
27
|
version:
|
|
29
28
|
platform: ruby
|
|
29
|
+
signing_key:
|
|
30
|
+
cert_chain:
|
|
31
|
+
authors:
|
|
32
|
+
- Jeff Rose
|
|
30
33
|
files:
|
|
31
|
-
- test/calendar_test.rb
|
|
32
|
-
- test/single_event.ics
|
|
33
|
-
- test/simplecal.ics
|
|
34
34
|
- test/component
|
|
35
|
+
- test/component_test.rb
|
|
36
|
+
- test/single_event.ics
|
|
35
37
|
- test/property_helpers.rb
|
|
38
|
+
- test/simplecal.ics
|
|
39
|
+
- test/life.ics
|
|
40
|
+
- test/calendar_test.rb
|
|
36
41
|
- test/parser_test.rb
|
|
37
|
-
- test/
|
|
42
|
+
- test/parameter_test.rb
|
|
43
|
+
- test/interactive.rb
|
|
38
44
|
- test/component/event_test.rb
|
|
39
45
|
- lib/icalendar
|
|
40
46
|
- lib/icalendar.rb
|
|
41
|
-
- lib/icalendar/parser.rb
|
|
42
|
-
- lib/icalendar/calendar.rb
|
|
43
|
-
- lib/icalendar/parameter.rb
|
|
44
|
-
- lib/icalendar/helpers.rb
|
|
45
47
|
- lib/icalendar/component
|
|
46
|
-
-
|
|
48
|
+
- lib/icalendar/conversions.rb
|
|
49
|
+
- lib/icalendar/parameter.rb
|
|
47
50
|
- lib/icalendar/component.rb
|
|
51
|
+
- lib/icalendar/helpers.rb
|
|
52
|
+
- lib/icalendar/calendar.rb
|
|
48
53
|
- lib/icalendar/base.rb
|
|
49
|
-
- lib/icalendar/
|
|
54
|
+
- lib/icalendar/parser.rb
|
|
55
|
+
- lib/icalendar/foo.rb
|
|
50
56
|
- lib/icalendar/component/freebusy.rb
|
|
57
|
+
- lib/icalendar/component/event.rb
|
|
51
58
|
- lib/icalendar/component/journal.rb
|
|
52
59
|
- lib/icalendar/component/todo.rb
|
|
53
|
-
- lib/icalendar/component/event.rb
|
|
54
|
-
- lib/icalendar/component/alarm.rb
|
|
55
60
|
- lib/icalendar/component/timezone.rb
|
|
56
|
-
-
|
|
61
|
+
- lib/icalendar/component/alarm.rb
|
|
57
62
|
- docs/rfcs
|
|
58
63
|
- 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
64
|
- docs/rfcs/rfc2425.pdf
|
|
112
65
|
- docs/rfcs/rfc2426.pdf
|
|
113
66
|
- docs/rfcs/rfc2445.pdf
|
|
114
67
|
- docs/rfcs/rfc2446.pdf
|
|
115
68
|
- docs/rfcs/rfc2447.pdf
|
|
116
69
|
- docs/rfcs/rfc3283.txt
|
|
117
|
-
- docs/examples/create_cal.rb
|
|
118
70
|
- docs/examples/single_event.ics
|
|
71
|
+
- docs/examples/create_cal.rb
|
|
119
72
|
- docs/examples/parse_cal.rb
|
|
120
73
|
- Rakefile
|
|
121
74
|
- README
|