icalendar 0.96.4 → 0.97
Sign up to get free protection for your applications and to get access to all the features.
- data/README +66 -53
- data/Rakefile +33 -24
- data/docs/api/classes/Array.html +9 -11
- data/docs/api/classes/Array.src/M000002.html +18 -0
- data/docs/api/classes/Date.html +2 -22
- data/docs/api/classes/Date.src/M000004.html +29 -0
- data/docs/api/classes/DateTime.html +2 -43
- data/docs/api/classes/DateTime.src/M000005.html +50 -0
- data/docs/api/classes/Fixnum.html +2 -11
- data/docs/api/classes/Fixnum.src/M000011.html +18 -0
- data/docs/api/classes/Float.html +2 -11
- data/docs/api/classes/Float.src/M000003.html +18 -0
- data/docs/api/classes/HashAttrs.html +15 -60
- data/docs/api/classes/HashAttrs.src/M000068.html +26 -0
- data/docs/api/classes/HashAttrs.src/M000069.html +27 -0
- data/docs/api/classes/HashAttrs.src/M000070.html +19 -0
- data/docs/api/classes/Icalendar/Alarm.html +5 -15
- data/docs/api/classes/Icalendar/Alarm.src/M000020.html +22 -0
- data/docs/api/classes/Icalendar/Base.html +41 -0
- data/docs/api/classes/Icalendar/Base.src/M000022.html +18 -0
- data/docs/api/classes/Icalendar/Base.src/M000023.html +18 -0
- data/docs/api/classes/Icalendar/Calendar.html +116 -116
- data/docs/api/classes/Icalendar/Calendar.src/M000054.html +23 -0
- data/docs/api/classes/Icalendar/Calendar.src/M000055.html +23 -0
- data/docs/api/classes/Icalendar/Calendar.src/M000056.html +18 -0
- data/docs/api/classes/Icalendar/Calendar.src/M000057.html +23 -0
- data/docs/api/classes/Icalendar/Calendar.src/M000058.html +18 -0
- data/docs/api/classes/Icalendar/Calendar.src/M000059.html +23 -0
- data/docs/api/classes/Icalendar/Calendar.src/M000060.html +18 -0
- data/docs/api/classes/Icalendar/Calendar.src/M000061.html +23 -0
- data/docs/api/classes/Icalendar/Calendar.src/M000062.html +18 -0
- data/docs/api/classes/Icalendar/Calendar.src/M000063.html +23 -0
- data/docs/api/classes/Icalendar/Calendar.src/M000064.html +19 -0
- data/docs/api/classes/Icalendar/Component.html +200 -367
- data/docs/api/classes/Icalendar/Component.src/M000029.html +22 -0
- data/docs/api/classes/Icalendar/Component.src/M000030.html +24 -0
- data/docs/api/classes/Icalendar/Component.src/M000035.html +22 -0
- data/docs/api/classes/Icalendar/Component.src/M000040.html +18 -0
- data/docs/api/classes/Icalendar/Component.src/M000041.html +24 -0
- data/docs/api/classes/Icalendar/Component.src/M000042.html +28 -0
- data/docs/api/classes/Icalendar/Component.src/M000043.html +37 -0
- data/docs/api/classes/Icalendar/Component.src/M000044.html +37 -0
- data/docs/api/classes/Icalendar/Component.src/M000045.html +18 -0
- data/docs/api/classes/Icalendar/Component.src/M000046.html +18 -0
- data/docs/api/classes/Icalendar/Component.src/M000047.html +18 -0
- data/docs/api/classes/Icalendar/Component.src/M000048.html +26 -0
- data/docs/api/classes/Icalendar/Component.src/M000049.html +29 -0
- data/docs/api/classes/Icalendar/Component.src/M000050.html +22 -0
- data/docs/api/classes/Icalendar/DateProp.html +2 -12
- data/docs/api/classes/Icalendar/DateProp.src/M000013.html +19 -0
- data/docs/api/classes/Icalendar/DateProp/ClassMethods.html +2 -59
- data/docs/api/classes/Icalendar/DateProp/ClassMethods.src/M000014.html +66 -0
- data/docs/api/classes/Icalendar/Daylight.html +5 -14
- data/docs/api/classes/Icalendar/Daylight.src/M000051.html +18 -0
- data/docs/api/classes/Icalendar/Event.html +30 -37
- data/docs/api/classes/Icalendar/Event.src/M000052.html +23 -0
- data/docs/api/classes/Icalendar/Event.src/M000053.html +23 -0
- data/docs/api/classes/Icalendar/Freebusy.html +5 -14
- data/docs/api/classes/Icalendar/Freebusy.src/M000065.html +21 -0
- data/docs/api/classes/Icalendar/Geo.html +192 -0
- data/docs/api/classes/Icalendar/Geo.src/M000024.html +19 -0
- data/docs/api/classes/Icalendar/Geo.src/M000025.html +18 -0
- data/docs/api/classes/Icalendar/Journal.html +2 -11
- data/docs/api/classes/Icalendar/Journal.src/M000016.html +22 -0
- data/docs/api/classes/Icalendar/Parameter.html +5 -23
- data/docs/api/classes/Icalendar/Parameter.src/M000066.html +27 -0
- data/docs/api/classes/Icalendar/Parser.html +36 -212
- data/docs/api/classes/Icalendar/Parser.src/M000017.html +32 -0
- data/docs/api/classes/Icalendar/Parser.src/M000018.html +43 -0
- data/docs/api/classes/Icalendar/Parser.src/M000019.html +33 -0
- data/docs/api/classes/Icalendar/Standard.html +2 -11
- data/docs/api/classes/Icalendar/Standard.src/M000015.html +18 -0
- data/docs/api/classes/Icalendar/Timezone.html +16 -48
- data/docs/api/classes/Icalendar/Timezone.src/M000026.html +19 -0
- data/docs/api/classes/Icalendar/Timezone.src/M000027.html +22 -0
- data/docs/api/classes/Icalendar/Timezone.src/M000028.html +18 -0
- data/docs/api/classes/Icalendar/Todo.html +5 -14
- data/docs/api/classes/Icalendar/Todo.src/M000021.html +22 -0
- data/docs/api/classes/Object.html +10 -59
- data/docs/api/classes/Object.src/M000006.html +20 -0
- data/docs/api/classes/Object.src/M000007.html +18 -0
- data/docs/api/classes/Object.src/M000008.html +20 -0
- data/docs/api/classes/Object.src/M000009.html +18 -0
- data/docs/api/classes/Object.src/M000010.html +18 -0
- data/docs/api/classes/String.html +2 -11
- data/docs/api/classes/String.src/M000012.html +18 -0
- data/docs/api/classes/Time.html +2 -26
- data/docs/api/classes/Time.src/M000001.html +37 -0
- data/docs/api/classes/URI/Generic.html +5 -14
- data/docs/api/classes/URI/Generic.src/M000067.html +18 -0
- data/docs/api/created.rid +1 -1
- data/docs/api/files/COPYING.html +1 -1
- data/docs/api/files/GPL.html +1 -1
- data/docs/api/files/README.html +76 -64
- data/docs/api/files/lib/hash_attrs_rb.html +1 -1
- data/docs/api/files/lib/icalendar/base_rb.html +1 -1
- data/docs/api/files/lib/icalendar/calendar_rb.html +1 -1
- data/docs/api/files/lib/icalendar/component/alarm_rb.html +1 -1
- data/docs/api/files/lib/icalendar/component/event_rb.html +1 -1
- data/docs/api/files/lib/icalendar/component/freebusy_rb.html +1 -1
- data/docs/api/files/lib/icalendar/component/journal_rb.html +1 -1
- data/docs/api/files/lib/icalendar/component/timezone_rb.html +1 -1
- data/docs/api/files/lib/icalendar/component/todo_rb.html +1 -1
- data/docs/api/files/lib/icalendar/component_rb.html +8 -1
- data/docs/api/files/lib/icalendar/conversions_rb.html +1 -1
- data/docs/api/files/lib/icalendar/helpers_rb.html +1 -1
- data/docs/api/files/lib/icalendar/parameter_rb.html +1 -1
- data/docs/api/files/lib/icalendar/parser_rb.html +2 -1
- data/docs/api/files/lib/icalendar_rb.html +1 -1
- data/docs/api/files/lib/meta_rb.html +1 -1
- data/docs/api/fr_class_index.html +1 -0
- data/docs/api/fr_method_index.html +57 -41
- data/docs/rfcs/itip_notes.txt +69 -0
- data/examples/create_cal.rb +33 -32
- data/examples/parse_cal.rb +2 -2
- data/lib/icalendar/base.rb +8 -0
- data/lib/icalendar/calendar.rb +32 -3
- data/lib/icalendar/component.rb +187 -113
- data/lib/icalendar/component/alarm.rb +3 -0
- data/lib/icalendar/component/event.rb +9 -3
- data/lib/icalendar/component/freebusy.rb +3 -0
- data/lib/icalendar/component/journal.rb +4 -0
- data/lib/icalendar/component/todo.rb +4 -0
- data/lib/icalendar/conversions.rb +7 -1
- data/lib/icalendar/parser.rb +68 -90
- data/test/calendar_test.rb +32 -8
- data/test/component/event_test.rb +4 -7
- data/test/component/todo_test.rb +13 -0
- data/test/component_test.rb +21 -34
- data/test/conversions_test.rb +66 -0
- data/test/coverage/-home-rosejn-projects-icalendar-lib-hash_attrs_rb.html +574 -0
- data/test/coverage/-home-rosejn-projects-icalendar-lib-icalendar-base_rb.html +575 -0
- data/test/coverage/-home-rosejn-projects-icalendar-lib-icalendar-calendar_rb.html +629 -0
- data/test/coverage/-home-rosejn-projects-icalendar-lib-icalendar-component-alarm_rb.html +581 -0
- data/test/coverage/-home-rosejn-projects-icalendar-lib-icalendar-component-event_rb.html +658 -0
- data/test/coverage/-home-rosejn-projects-icalendar-lib-icalendar-component-freebusy_rb.html +574 -0
- data/test/coverage/-home-rosejn-projects-icalendar-lib-icalendar-component-journal_rb.html +597 -0
- data/test/coverage/-home-rosejn-projects-icalendar-lib-icalendar-component-timezone_rb.html +625 -0
- data/test/coverage/-home-rosejn-projects-icalendar-lib-icalendar-component-todo_rb.html +600 -0
- data/test/coverage/-home-rosejn-projects-icalendar-lib-icalendar-component_rb.html +924 -0
- data/test/coverage/-home-rosejn-projects-icalendar-lib-icalendar-conversions_rb.html +667 -0
- data/test/coverage/-home-rosejn-projects-icalendar-lib-icalendar-parser_rb.html +938 -0
- data/test/coverage/-home-rosejn-projects-icalendar-lib-icalendar_rb.html +576 -0
- data/test/coverage/-home-rosejn-projects-icalendar-lib-meta_rb.html +572 -0
- data/test/coverage/calendar_test_rb.html +590 -0
- data/test/coverage/component_test_rb.html +602 -0
- data/test/coverage/index.html +1009 -0
- data/test/coverage/lib-hash_attrs_rb.html +574 -0
- data/test/coverage/lib-icalendar-base_rb.html +583 -0
- data/test/coverage/lib-icalendar-calendar_rb.html +631 -0
- data/test/coverage/lib-icalendar-component-alarm_rb.html +581 -0
- data/test/coverage/lib-icalendar-component-event_rb.html +661 -0
- data/test/coverage/lib-icalendar-component-freebusy_rb.html +576 -0
- data/test/coverage/lib-icalendar-component-journal_rb.html +599 -0
- data/test/coverage/lib-icalendar-component-timezone_rb.html +625 -0
- data/test/coverage/lib-icalendar-component-todo_rb.html +602 -0
- data/test/coverage/lib-icalendar-component_rb.html +941 -0
- data/test/coverage/lib-icalendar-conversions_rb.html +673 -0
- data/test/coverage/lib-icalendar-parser_rb.html +916 -0
- data/test/coverage/lib-icalendar_rb.html +576 -0
- data/test/coverage/lib-meta_rb.html +572 -0
- data/test/coverage/parameter_test_rb.html +569 -0
- data/test/coverage/parser_test_rb.html +623 -0
- data/test/coverage/test-calendar_test_rb.html +590 -0
- data/test/coverage/test-component-event_test_rb.html +584 -0
- data/test/coverage/test-component_test_rb.html +606 -0
- data/test/coverage/test-conversions_test_rb.html +603 -0
- data/test/coverage/test-parameter_test_rb.html +569 -0
- data/test/coverage/test-parser_test_rb.html +624 -0
- data/test/interactive.rb +3 -1
- data/test/life.ics +46 -1092
- data/test/parameter_test.rb +11 -2
- data/test/parser_test.rb +12 -11
- metadata +259 -126
- data/test/old_life.ics +0 -46
- data/test/rw.ics +0 -947
@@ -56,7 +56,7 @@
|
|
56
56
|
</tr>
|
57
57
|
<tr class="top-aligned-row">
|
58
58
|
<td><strong>Last Update:</strong></td>
|
59
|
-
<td>Thu
|
59
|
+
<td>Thu Jul 20 19:41:55 CEST 2006</td>
|
60
60
|
</tr>
|
61
61
|
</table>
|
62
62
|
</div>
|
@@ -69,6 +69,13 @@
|
|
69
69
|
<div id="contextContent">
|
70
70
|
|
71
71
|
|
72
|
+
<div id="requires-list">
|
73
|
+
<h3 class="section-bar">Required files</h3>
|
74
|
+
|
75
|
+
<div class="name-list">
|
76
|
+
socket
|
77
|
+
</div>
|
78
|
+
</div>
|
72
79
|
|
73
80
|
</div>
|
74
81
|
|
@@ -56,7 +56,7 @@
|
|
56
56
|
</tr>
|
57
57
|
<tr class="top-aligned-row">
|
58
58
|
<td><strong>Last Update:</strong></td>
|
59
|
-
<td>
|
59
|
+
<td>Thu Jul 20 15:35:13 CEST 2006</td>
|
60
60
|
</tr>
|
61
61
|
</table>
|
62
62
|
</div>
|
@@ -75,6 +75,7 @@
|
|
75
75
|
<div class="name-list">
|
76
76
|
date
|
77
77
|
uri
|
78
|
+
stringio
|
78
79
|
</div>
|
79
80
|
</div>
|
80
81
|
|
@@ -35,6 +35,7 @@
|
|
35
35
|
<a href="classes/Icalendar/Daylight.html">Icalendar::Daylight</a><br />
|
36
36
|
<a href="classes/Icalendar/Event.html">Icalendar::Event</a><br />
|
37
37
|
<a href="classes/Icalendar/Freebusy.html">Icalendar::Freebusy</a><br />
|
38
|
+
<a href="classes/Icalendar/Geo.html">Icalendar::Geo</a><br />
|
38
39
|
<a href="classes/Icalendar/InvalidPropertyValue.html">Icalendar::InvalidPropertyValue</a><br />
|
39
40
|
<a href="classes/Icalendar/Journal.html">Icalendar::Journal</a><br />
|
40
41
|
<a href="classes/Icalendar/Parameter.html">Icalendar::Parameter</a><br />
|
@@ -20,60 +20,76 @@
|
|
20
20
|
<div id="index">
|
21
21
|
<h1 class="section-bar">Methods</h1>
|
22
22
|
<div id="index-entries">
|
23
|
-
<a href="classes/Icalendar/Component.html#
|
24
|
-
<a href="classes/Icalendar/
|
25
|
-
<a href="classes/Icalendar/
|
26
|
-
<a href="classes/Icalendar/
|
23
|
+
<a href="classes/Icalendar/Component.html#M000031">add (Icalendar::Component)</a><br />
|
24
|
+
<a href="classes/Icalendar/Component.html#M000030">add_component (Icalendar::Component)</a><br />
|
25
|
+
<a href="classes/Icalendar/Timezone.html#M000026">add_component (Icalendar::Timezone)</a><br />
|
26
|
+
<a href="classes/Icalendar/Component.html#M000032">add_event (Icalendar::Component)</a><br />
|
27
|
+
<a href="classes/Icalendar/Component.html#M000034">add_journal (Icalendar::Component)</a><br />
|
28
|
+
<a href="classes/Icalendar/Component.html#M000033">add_todo (Icalendar::Component)</a><br />
|
29
|
+
<a href="classes/Icalendar/Event.html#M000053">alarm (Icalendar::Event)</a><br />
|
27
30
|
<a href="classes/Icalendar/DateProp.html#M000013">append_features (Icalendar::DateProp)</a><br />
|
28
31
|
<a href="classes/Object.html#M000010">class_def (Object)</a><br />
|
29
|
-
<a href="classes/Icalendar/Component.html#
|
32
|
+
<a href="classes/Icalendar/Component.html#M000045">custom_property (Icalendar::Component)</a><br />
|
30
33
|
<a href="classes/Icalendar/DateProp/ClassMethods.html#M000014">date_property (Icalendar::DateProp::ClassMethods)</a><br />
|
31
|
-
<a href="classes/Icalendar/
|
32
|
-
<a href="classes/Icalendar/Calendar.html#
|
33
|
-
<a href="classes/
|
34
|
-
<a href="classes/
|
35
|
-
<a href="classes/
|
36
|
-
<a href="classes/Icalendar/
|
37
|
-
<a href="classes/Icalendar/
|
38
|
-
<a href="classes/
|
39
|
-
<a href="classes/
|
34
|
+
<a href="classes/Icalendar/Base.html#M000022">debug (Icalendar::Base)</a><br />
|
35
|
+
<a href="classes/Icalendar/Calendar.html#M000055">event (Icalendar::Calendar)</a><br />
|
36
|
+
<a href="classes/Icalendar/Calendar.html#M000056">find_event (Icalendar::Calendar)</a><br />
|
37
|
+
<a href="classes/Icalendar/Calendar.html#M000062">find_freebusy (Icalendar::Calendar)</a><br />
|
38
|
+
<a href="classes/Icalendar/Calendar.html#M000060">find_journal (Icalendar::Calendar)</a><br />
|
39
|
+
<a href="classes/Icalendar/Calendar.html#M000058">find_todo (Icalendar::Calendar)</a><br />
|
40
|
+
<a href="classes/Icalendar/Calendar.html#M000061">freebusy (Icalendar::Calendar)</a><br />
|
41
|
+
<a href="classes/HashAttrs.html#M000070">hash_accessor (HashAttrs)</a><br />
|
42
|
+
<a href="classes/HashAttrs.html#M000068">hash_reader (HashAttrs)</a><br />
|
43
|
+
<a href="classes/HashAttrs.html#M000069">hash_writer (HashAttrs)</a><br />
|
44
|
+
<a href="classes/Icalendar/Component.html#M000047">ical_component (Icalendar::Component)</a><br />
|
45
|
+
<a href="classes/Icalendar/Component.html#M000049">ical_multi_property (Icalendar::Component)</a><br />
|
46
|
+
<a href="classes/Icalendar/Component.html#M000048">ical_property (Icalendar::Component)</a><br />
|
47
|
+
<a href="classes/Icalendar/Calendar.html#M000059">journal (Icalendar::Calendar)</a><br />
|
40
48
|
<a href="classes/Object.html#M000009">meta_def (Object)</a><br />
|
41
49
|
<a href="classes/Object.html#M000007">meta_eval (Object)</a><br />
|
42
50
|
<a href="classes/Object.html#M000008">meta_include (Object)</a><br />
|
43
51
|
<a href="classes/Object.html#M000006">metaclass (Object)</a><br />
|
44
|
-
<a href="classes/Icalendar/Component.html#
|
45
|
-
<a href="classes/Icalendar/Component.html#
|
46
|
-
<a href="classes/Icalendar/
|
47
|
-
<a href="classes/Icalendar/
|
48
|
-
<a href="classes/Icalendar/
|
52
|
+
<a href="classes/Icalendar/Component.html#M000046">multi_property? (Icalendar::Component)</a><br />
|
53
|
+
<a href="classes/Icalendar/Component.html#M000029">new (Icalendar::Component)</a><br />
|
54
|
+
<a href="classes/Icalendar/Timezone.html#M000028">new (Icalendar::Timezone)</a><br />
|
55
|
+
<a href="classes/Icalendar/Freebusy.html#M000065">new (Icalendar::Freebusy)</a><br />
|
56
|
+
<a href="classes/Icalendar/Standard.html#M000015">new (Icalendar::Standard)</a><br />
|
57
|
+
<a href="classes/Icalendar/Calendar.html#M000054">new (Icalendar::Calendar)</a><br />
|
49
58
|
<a href="classes/Icalendar/Journal.html#M000016">new (Icalendar::Journal)</a><br />
|
50
|
-
<a href="classes/Icalendar/
|
51
|
-
<a href="classes/Icalendar/
|
52
|
-
<a href="classes/Icalendar/
|
53
|
-
<a href="classes/Icalendar/Alarm.html#
|
54
|
-
<a href="classes/Icalendar/Todo.html#M000022">new (Icalendar::Todo)</a><br />
|
59
|
+
<a href="classes/Icalendar/Todo.html#M000021">new (Icalendar::Todo)</a><br />
|
60
|
+
<a href="classes/Icalendar/Daylight.html#M000051">new (Icalendar::Daylight)</a><br />
|
61
|
+
<a href="classes/Icalendar/Geo.html#M000024">new (Icalendar::Geo)</a><br />
|
62
|
+
<a href="classes/Icalendar/Alarm.html#M000020">new (Icalendar::Alarm)</a><br />
|
55
63
|
<a href="classes/Icalendar/Parser.html#M000017">new (Icalendar::Parser)</a><br />
|
56
|
-
<a href="classes/Icalendar/
|
64
|
+
<a href="classes/Icalendar/Event.html#M000052">new (Icalendar::Event)</a><br />
|
65
|
+
<a href="classes/Icalendar/Component.html#M000040">new_uid (Icalendar::Component)</a><br />
|
57
66
|
<a href="classes/Icalendar/Parser.html#M000018">next_line (Icalendar::Parser)</a><br />
|
58
|
-
<a href="classes/Icalendar/Parser.html#M000019">
|
59
|
-
<a href="classes/Icalendar/
|
60
|
-
<a href="classes/Icalendar/Component.html#
|
61
|
-
<a href="classes/Icalendar/Component.html#
|
62
|
-
<a href="classes/Icalendar/
|
63
|
-
<a href="classes/Icalendar/
|
64
|
-
<a href="classes/Icalendar/
|
67
|
+
<a href="classes/Icalendar/Parser.html#M000019">parse (Icalendar::Parser)</a><br />
|
68
|
+
<a href="classes/Icalendar/Component.html#M000042">print_component (Icalendar::Component)</a><br />
|
69
|
+
<a href="classes/Icalendar/Component.html#M000044">print_parameters (Icalendar::Component)</a><br />
|
70
|
+
<a href="classes/Icalendar/Component.html#M000043">print_properties (Icalendar::Component)</a><br />
|
71
|
+
<a href="classes/Icalendar/Calendar.html#M000064">publish (Icalendar::Calendar)</a><br />
|
72
|
+
<a href="classes/Icalendar/Base.html#M000023">quiet (Icalendar::Base)</a><br />
|
73
|
+
<a href="classes/Icalendar/Component.html#M000036">remove (Icalendar::Component)</a><br />
|
74
|
+
<a href="classes/Icalendar/Component.html#M000035">remove_component (Icalendar::Component)</a><br />
|
75
|
+
<a href="classes/Icalendar/Component.html#M000037">remove_event (Icalendar::Component)</a><br />
|
76
|
+
<a href="classes/Icalendar/Component.html#M000039">remove_journal (Icalendar::Component)</a><br />
|
77
|
+
<a href="classes/Icalendar/Component.html#M000038">remove_todo (Icalendar::Component)</a><br />
|
78
|
+
<a href="classes/Icalendar/Component.html#M000050">respond_to? (Icalendar::Component)</a><br />
|
79
|
+
<a href="classes/Icalendar/Calendar.html#M000063">timezone (Icalendar::Calendar)</a><br />
|
80
|
+
<a href="classes/Fixnum.html#M000011">to_ical (Fixnum)</a><br />
|
81
|
+
<a href="classes/Icalendar/Geo.html#M000025">to_ical (Icalendar::Geo)</a><br />
|
82
|
+
<a href="classes/String.html#M000012">to_ical (String)</a><br />
|
83
|
+
<a href="classes/Time.html#M000001">to_ical (Time)</a><br />
|
65
84
|
<a href="classes/DateTime.html#M000005">to_ical (DateTime)</a><br />
|
85
|
+
<a href="classes/Icalendar/Timezone.html#M000027">to_ical (Icalendar::Timezone)</a><br />
|
86
|
+
<a href="classes/Icalendar/Component.html#M000041">to_ical (Icalendar::Component)</a><br />
|
66
87
|
<a href="classes/Float.html#M000003">to_ical (Float)</a><br />
|
67
|
-
<a href="classes/Time.html#M000001">to_ical (Time)</a><br />
|
68
|
-
<a href="classes/Date.html#M000004">to_ical (Date)</a><br />
|
69
88
|
<a href="classes/Array.html#M000002">to_ical (Array)</a><br />
|
70
|
-
<a href="classes/
|
71
|
-
<a href="classes/
|
72
|
-
<a href="classes/
|
73
|
-
<a href="classes/
|
74
|
-
<a href="classes/Icalendar/Timezone.html#M000024">to_ical (Icalendar::Timezone)</a><br />
|
75
|
-
<a href="classes/Icalendar/Parameter.html#M000050">to_s (Icalendar::Parameter)</a><br />
|
76
|
-
<a href="classes/Icalendar/Calendar.html#M000045">todo (Icalendar::Calendar)</a><br />
|
89
|
+
<a href="classes/URI/Generic.html#M000067">to_ical (URI::Generic)</a><br />
|
90
|
+
<a href="classes/Date.html#M000004">to_ical (Date)</a><br />
|
91
|
+
<a href="classes/Icalendar/Parameter.html#M000066">to_s (Icalendar::Parameter)</a><br />
|
92
|
+
<a href="classes/Icalendar/Calendar.html#M000057">todo (Icalendar::Calendar)</a><br />
|
77
93
|
</div>
|
78
94
|
</div>
|
79
95
|
</body>
|
@@ -0,0 +1,69 @@
|
|
1
|
+
Set of methods used for transactions:
|
2
|
+
|
3
|
+
PUBLISH:
|
4
|
+
- Publish a calendar entry to one or more users.
|
5
|
+
|
6
|
+
REQUEST:
|
7
|
+
- Used to schedule a calendar entry with other users.
|
8
|
+
- Require REPLY messages from others.
|
9
|
+
- Used by Organizers to update status of entries.
|
10
|
+
|
11
|
+
REPLY:
|
12
|
+
- Attendees use this to send information back to Organizers who have sent a
|
13
|
+
REQUEST message.
|
14
|
+
|
15
|
+
ADD:
|
16
|
+
- Add one or more instances to an existing entry.
|
17
|
+
|
18
|
+
CANCEL:
|
19
|
+
- Cancel a calendar item.
|
20
|
+
|
21
|
+
REFRESH:
|
22
|
+
- Attendee's use this to get the latest version of an item.
|
23
|
+
|
24
|
+
COUNTER:
|
25
|
+
- Used by an attendee to negotiate a change in a calendar entry.
|
26
|
+
|
27
|
+
DECLINE-COUNTER:
|
28
|
+
- Used by an organizer to decline a COUNTER message.
|
29
|
+
|
30
|
+
|
31
|
+
Transports:
|
32
|
+
|
33
|
+
Real-time vs. Store-and-forward?
|
34
|
+
|
35
|
+
Entry Status:
|
36
|
+
- Only the organizer can set the STATUS property
|
37
|
+
- Attendee's use the "partstat" parameter of the ATTENDEE property to convey
|
38
|
+
their personal status.
|
39
|
+
- Initial value of "partstat" is set to "NEEDS-ACTION" by organizer
|
40
|
+
- Modifying this state is part of an attendee's REPLY message.
|
41
|
+
|
42
|
+
Sequence Property:
|
43
|
+
- Used to tell manage different versions of an entry
|
44
|
+
- Has specific rules so look at these
|
45
|
+
|
46
|
+
Handling messages should be done in this manner:
|
47
|
+
|
48
|
+
1. The primary key for referencing a particular iCalendar component
|
49
|
+
is the "UID" property value. To reference an instance of a
|
50
|
+
recurring component, the primary key is composed of the "UID" and
|
51
|
+
the "RECURRENCE-ID" properties.
|
52
|
+
2. The secondary key for referencing a component is the "SEQUENCE"
|
53
|
+
property value. For components where the "UID" is the same, the
|
54
|
+
component with the highest numeric value for the "SEQUENCE"
|
55
|
+
property obsoletes all other revisions of the component with
|
56
|
+
lower values.
|
57
|
+
3. "Attendees" send "REPLY" messages to the "Organizer". For
|
58
|
+
replies where the "UID" property value is the same, the value of
|
59
|
+
the "SEQUENCE" property indicates the revision of the component
|
60
|
+
to which the "Attendee" is replying. The reply with the highest
|
61
|
+
numeric value for the "SEQUENCE" property obsoletes all other
|
62
|
+
replies with lower values.
|
63
|
+
4. In situations where the "UID" and "SEQUENCE" properties match,
|
64
|
+
the "DTSTAMP" property is used as the tie-breaker. The component
|
65
|
+
with the latest "DTSTAMP" overrides all others. Similarly, for
|
66
|
+
"Attendee" responses where the "UID" property values match and
|
67
|
+
the "SEQUENCE" property values match, the response with the
|
68
|
+
latest "DTSTAMP" overrides all others.
|
69
|
+
|
data/examples/create_cal.rb
CHANGED
@@ -2,43 +2,44 @@
|
|
2
2
|
## Need this so we can require the library from the samples directory
|
3
3
|
$:.unshift(File.dirname(__FILE__) + '/../lib')
|
4
4
|
|
5
|
+
require 'rubygems' # Unless you install from the tarball or zip.
|
5
6
|
require 'icalendar'
|
6
7
|
require 'date'
|
7
8
|
|
8
|
-
#
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
#
|
13
|
-
|
14
|
-
event
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
#
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
9
|
+
include Icalendar # Probably do this in your class to limit namespace overlap
|
10
|
+
|
11
|
+
## Creating calendars and events is easy.
|
12
|
+
|
13
|
+
# Create a calendar with an event (standard method)
|
14
|
+
cal = Calendar.new
|
15
|
+
cal.event do
|
16
|
+
dtstart Date.new(2005, 04, 29)
|
17
|
+
dtend Date.new(2005, 04, 28)
|
18
|
+
summary "Meeting with the man."
|
19
|
+
description "Have a long lunch meeting and decide nothing..."
|
20
|
+
klass "PRIVATE"
|
21
|
+
end
|
22
|
+
|
23
|
+
## Or you can make events like this
|
24
|
+
event = Event.new
|
25
|
+
event.start = DateTime.civil(2006, 6, 23, 8, 30)
|
26
|
+
event.summary = "A great event!"
|
27
|
+
cal.add_event(event)
|
28
|
+
|
29
|
+
event2 = cal.event # This automatically adds the event to the calendar
|
30
|
+
event2.start = DateTime.civil(2006, 6, 24, 8, 30)
|
31
|
+
event2.summary = "Another great event!"
|
32
|
+
|
33
|
+
# Now with support for property parameters
|
34
|
+
params = {"ALTREP" =>['"http://my.language.net"'], "LANGUAGE" => ["SPANISH"]}
|
35
|
+
|
36
|
+
cal.event do
|
37
|
+
dtstart Date.new(2005, 04, 29)
|
38
|
+
dtend Date.new(2005, 04, 28)
|
39
|
+
summary "This is a summary with params.", params
|
37
40
|
end
|
38
41
|
|
39
|
-
# We can output the
|
42
|
+
# We can output the calendar as a string to write to a file,
|
40
43
|
# network port, database etc.
|
41
44
|
cal_string = cal.to_ical
|
42
45
|
puts cal_string
|
43
|
-
|
44
|
-
#:startdoc:
|