icalendar 0.96.4 → 0.97

Sign up to get free protection for your applications and to get access to all the features.
Files changed (176) hide show
  1. data/README +66 -53
  2. data/Rakefile +33 -24
  3. data/docs/api/classes/Array.html +9 -11
  4. data/docs/api/classes/Array.src/M000002.html +18 -0
  5. data/docs/api/classes/Date.html +2 -22
  6. data/docs/api/classes/Date.src/M000004.html +29 -0
  7. data/docs/api/classes/DateTime.html +2 -43
  8. data/docs/api/classes/DateTime.src/M000005.html +50 -0
  9. data/docs/api/classes/Fixnum.html +2 -11
  10. data/docs/api/classes/Fixnum.src/M000011.html +18 -0
  11. data/docs/api/classes/Float.html +2 -11
  12. data/docs/api/classes/Float.src/M000003.html +18 -0
  13. data/docs/api/classes/HashAttrs.html +15 -60
  14. data/docs/api/classes/HashAttrs.src/M000068.html +26 -0
  15. data/docs/api/classes/HashAttrs.src/M000069.html +27 -0
  16. data/docs/api/classes/HashAttrs.src/M000070.html +19 -0
  17. data/docs/api/classes/Icalendar/Alarm.html +5 -15
  18. data/docs/api/classes/Icalendar/Alarm.src/M000020.html +22 -0
  19. data/docs/api/classes/Icalendar/Base.html +41 -0
  20. data/docs/api/classes/Icalendar/Base.src/M000022.html +18 -0
  21. data/docs/api/classes/Icalendar/Base.src/M000023.html +18 -0
  22. data/docs/api/classes/Icalendar/Calendar.html +116 -116
  23. data/docs/api/classes/Icalendar/Calendar.src/M000054.html +23 -0
  24. data/docs/api/classes/Icalendar/Calendar.src/M000055.html +23 -0
  25. data/docs/api/classes/Icalendar/Calendar.src/M000056.html +18 -0
  26. data/docs/api/classes/Icalendar/Calendar.src/M000057.html +23 -0
  27. data/docs/api/classes/Icalendar/Calendar.src/M000058.html +18 -0
  28. data/docs/api/classes/Icalendar/Calendar.src/M000059.html +23 -0
  29. data/docs/api/classes/Icalendar/Calendar.src/M000060.html +18 -0
  30. data/docs/api/classes/Icalendar/Calendar.src/M000061.html +23 -0
  31. data/docs/api/classes/Icalendar/Calendar.src/M000062.html +18 -0
  32. data/docs/api/classes/Icalendar/Calendar.src/M000063.html +23 -0
  33. data/docs/api/classes/Icalendar/Calendar.src/M000064.html +19 -0
  34. data/docs/api/classes/Icalendar/Component.html +200 -367
  35. data/docs/api/classes/Icalendar/Component.src/M000029.html +22 -0
  36. data/docs/api/classes/Icalendar/Component.src/M000030.html +24 -0
  37. data/docs/api/classes/Icalendar/Component.src/M000035.html +22 -0
  38. data/docs/api/classes/Icalendar/Component.src/M000040.html +18 -0
  39. data/docs/api/classes/Icalendar/Component.src/M000041.html +24 -0
  40. data/docs/api/classes/Icalendar/Component.src/M000042.html +28 -0
  41. data/docs/api/classes/Icalendar/Component.src/M000043.html +37 -0
  42. data/docs/api/classes/Icalendar/Component.src/M000044.html +37 -0
  43. data/docs/api/classes/Icalendar/Component.src/M000045.html +18 -0
  44. data/docs/api/classes/Icalendar/Component.src/M000046.html +18 -0
  45. data/docs/api/classes/Icalendar/Component.src/M000047.html +18 -0
  46. data/docs/api/classes/Icalendar/Component.src/M000048.html +26 -0
  47. data/docs/api/classes/Icalendar/Component.src/M000049.html +29 -0
  48. data/docs/api/classes/Icalendar/Component.src/M000050.html +22 -0
  49. data/docs/api/classes/Icalendar/DateProp.html +2 -12
  50. data/docs/api/classes/Icalendar/DateProp.src/M000013.html +19 -0
  51. data/docs/api/classes/Icalendar/DateProp/ClassMethods.html +2 -59
  52. data/docs/api/classes/Icalendar/DateProp/ClassMethods.src/M000014.html +66 -0
  53. data/docs/api/classes/Icalendar/Daylight.html +5 -14
  54. data/docs/api/classes/Icalendar/Daylight.src/M000051.html +18 -0
  55. data/docs/api/classes/Icalendar/Event.html +30 -37
  56. data/docs/api/classes/Icalendar/Event.src/M000052.html +23 -0
  57. data/docs/api/classes/Icalendar/Event.src/M000053.html +23 -0
  58. data/docs/api/classes/Icalendar/Freebusy.html +5 -14
  59. data/docs/api/classes/Icalendar/Freebusy.src/M000065.html +21 -0
  60. data/docs/api/classes/Icalendar/Geo.html +192 -0
  61. data/docs/api/classes/Icalendar/Geo.src/M000024.html +19 -0
  62. data/docs/api/classes/Icalendar/Geo.src/M000025.html +18 -0
  63. data/docs/api/classes/Icalendar/Journal.html +2 -11
  64. data/docs/api/classes/Icalendar/Journal.src/M000016.html +22 -0
  65. data/docs/api/classes/Icalendar/Parameter.html +5 -23
  66. data/docs/api/classes/Icalendar/Parameter.src/M000066.html +27 -0
  67. data/docs/api/classes/Icalendar/Parser.html +36 -212
  68. data/docs/api/classes/Icalendar/Parser.src/M000017.html +32 -0
  69. data/docs/api/classes/Icalendar/Parser.src/M000018.html +43 -0
  70. data/docs/api/classes/Icalendar/Parser.src/M000019.html +33 -0
  71. data/docs/api/classes/Icalendar/Standard.html +2 -11
  72. data/docs/api/classes/Icalendar/Standard.src/M000015.html +18 -0
  73. data/docs/api/classes/Icalendar/Timezone.html +16 -48
  74. data/docs/api/classes/Icalendar/Timezone.src/M000026.html +19 -0
  75. data/docs/api/classes/Icalendar/Timezone.src/M000027.html +22 -0
  76. data/docs/api/classes/Icalendar/Timezone.src/M000028.html +18 -0
  77. data/docs/api/classes/Icalendar/Todo.html +5 -14
  78. data/docs/api/classes/Icalendar/Todo.src/M000021.html +22 -0
  79. data/docs/api/classes/Object.html +10 -59
  80. data/docs/api/classes/Object.src/M000006.html +20 -0
  81. data/docs/api/classes/Object.src/M000007.html +18 -0
  82. data/docs/api/classes/Object.src/M000008.html +20 -0
  83. data/docs/api/classes/Object.src/M000009.html +18 -0
  84. data/docs/api/classes/Object.src/M000010.html +18 -0
  85. data/docs/api/classes/String.html +2 -11
  86. data/docs/api/classes/String.src/M000012.html +18 -0
  87. data/docs/api/classes/Time.html +2 -26
  88. data/docs/api/classes/Time.src/M000001.html +37 -0
  89. data/docs/api/classes/URI/Generic.html +5 -14
  90. data/docs/api/classes/URI/Generic.src/M000067.html +18 -0
  91. data/docs/api/created.rid +1 -1
  92. data/docs/api/files/COPYING.html +1 -1
  93. data/docs/api/files/GPL.html +1 -1
  94. data/docs/api/files/README.html +76 -64
  95. data/docs/api/files/lib/hash_attrs_rb.html +1 -1
  96. data/docs/api/files/lib/icalendar/base_rb.html +1 -1
  97. data/docs/api/files/lib/icalendar/calendar_rb.html +1 -1
  98. data/docs/api/files/lib/icalendar/component/alarm_rb.html +1 -1
  99. data/docs/api/files/lib/icalendar/component/event_rb.html +1 -1
  100. data/docs/api/files/lib/icalendar/component/freebusy_rb.html +1 -1
  101. data/docs/api/files/lib/icalendar/component/journal_rb.html +1 -1
  102. data/docs/api/files/lib/icalendar/component/timezone_rb.html +1 -1
  103. data/docs/api/files/lib/icalendar/component/todo_rb.html +1 -1
  104. data/docs/api/files/lib/icalendar/component_rb.html +8 -1
  105. data/docs/api/files/lib/icalendar/conversions_rb.html +1 -1
  106. data/docs/api/files/lib/icalendar/helpers_rb.html +1 -1
  107. data/docs/api/files/lib/icalendar/parameter_rb.html +1 -1
  108. data/docs/api/files/lib/icalendar/parser_rb.html +2 -1
  109. data/docs/api/files/lib/icalendar_rb.html +1 -1
  110. data/docs/api/files/lib/meta_rb.html +1 -1
  111. data/docs/api/fr_class_index.html +1 -0
  112. data/docs/api/fr_method_index.html +57 -41
  113. data/docs/rfcs/itip_notes.txt +69 -0
  114. data/examples/create_cal.rb +33 -32
  115. data/examples/parse_cal.rb +2 -2
  116. data/lib/icalendar/base.rb +8 -0
  117. data/lib/icalendar/calendar.rb +32 -3
  118. data/lib/icalendar/component.rb +187 -113
  119. data/lib/icalendar/component/alarm.rb +3 -0
  120. data/lib/icalendar/component/event.rb +9 -3
  121. data/lib/icalendar/component/freebusy.rb +3 -0
  122. data/lib/icalendar/component/journal.rb +4 -0
  123. data/lib/icalendar/component/todo.rb +4 -0
  124. data/lib/icalendar/conversions.rb +7 -1
  125. data/lib/icalendar/parser.rb +68 -90
  126. data/test/calendar_test.rb +32 -8
  127. data/test/component/event_test.rb +4 -7
  128. data/test/component/todo_test.rb +13 -0
  129. data/test/component_test.rb +21 -34
  130. data/test/conversions_test.rb +66 -0
  131. data/test/coverage/-home-rosejn-projects-icalendar-lib-hash_attrs_rb.html +574 -0
  132. data/test/coverage/-home-rosejn-projects-icalendar-lib-icalendar-base_rb.html +575 -0
  133. data/test/coverage/-home-rosejn-projects-icalendar-lib-icalendar-calendar_rb.html +629 -0
  134. data/test/coverage/-home-rosejn-projects-icalendar-lib-icalendar-component-alarm_rb.html +581 -0
  135. data/test/coverage/-home-rosejn-projects-icalendar-lib-icalendar-component-event_rb.html +658 -0
  136. data/test/coverage/-home-rosejn-projects-icalendar-lib-icalendar-component-freebusy_rb.html +574 -0
  137. data/test/coverage/-home-rosejn-projects-icalendar-lib-icalendar-component-journal_rb.html +597 -0
  138. data/test/coverage/-home-rosejn-projects-icalendar-lib-icalendar-component-timezone_rb.html +625 -0
  139. data/test/coverage/-home-rosejn-projects-icalendar-lib-icalendar-component-todo_rb.html +600 -0
  140. data/test/coverage/-home-rosejn-projects-icalendar-lib-icalendar-component_rb.html +924 -0
  141. data/test/coverage/-home-rosejn-projects-icalendar-lib-icalendar-conversions_rb.html +667 -0
  142. data/test/coverage/-home-rosejn-projects-icalendar-lib-icalendar-parser_rb.html +938 -0
  143. data/test/coverage/-home-rosejn-projects-icalendar-lib-icalendar_rb.html +576 -0
  144. data/test/coverage/-home-rosejn-projects-icalendar-lib-meta_rb.html +572 -0
  145. data/test/coverage/calendar_test_rb.html +590 -0
  146. data/test/coverage/component_test_rb.html +602 -0
  147. data/test/coverage/index.html +1009 -0
  148. data/test/coverage/lib-hash_attrs_rb.html +574 -0
  149. data/test/coverage/lib-icalendar-base_rb.html +583 -0
  150. data/test/coverage/lib-icalendar-calendar_rb.html +631 -0
  151. data/test/coverage/lib-icalendar-component-alarm_rb.html +581 -0
  152. data/test/coverage/lib-icalendar-component-event_rb.html +661 -0
  153. data/test/coverage/lib-icalendar-component-freebusy_rb.html +576 -0
  154. data/test/coverage/lib-icalendar-component-journal_rb.html +599 -0
  155. data/test/coverage/lib-icalendar-component-timezone_rb.html +625 -0
  156. data/test/coverage/lib-icalendar-component-todo_rb.html +602 -0
  157. data/test/coverage/lib-icalendar-component_rb.html +941 -0
  158. data/test/coverage/lib-icalendar-conversions_rb.html +673 -0
  159. data/test/coverage/lib-icalendar-parser_rb.html +916 -0
  160. data/test/coverage/lib-icalendar_rb.html +576 -0
  161. data/test/coverage/lib-meta_rb.html +572 -0
  162. data/test/coverage/parameter_test_rb.html +569 -0
  163. data/test/coverage/parser_test_rb.html +623 -0
  164. data/test/coverage/test-calendar_test_rb.html +590 -0
  165. data/test/coverage/test-component-event_test_rb.html +584 -0
  166. data/test/coverage/test-component_test_rb.html +606 -0
  167. data/test/coverage/test-conversions_test_rb.html +603 -0
  168. data/test/coverage/test-parameter_test_rb.html +569 -0
  169. data/test/coverage/test-parser_test_rb.html +624 -0
  170. data/test/interactive.rb +3 -1
  171. data/test/life.ics +46 -1092
  172. data/test/parameter_test.rb +11 -2
  173. data/test/parser_test.rb +12 -11
  174. metadata +259 -126
  175. data/test/old_life.ics +0 -46
  176. 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>Mon Oct 31 16:38:25 CET 2005</td>
59
+ <td>Wed Apr 26 10:57:42 CEST 2006</td>
60
60
  </tr>
61
61
  </table>
62
62
  </div>
@@ -56,7 +56,7 @@
56
56
  </tr>
57
57
  <tr class="top-aligned-row">
58
58
  <td><strong>Last Update:</strong></td>
59
- <td>Mon Oct 31 00:06:23 CET 2005</td>
59
+ <td>Thu Jun 29 17:55:31 CEST 2006</td>
60
60
  </tr>
61
61
  </table>
62
62
  </div>
@@ -56,7 +56,7 @@
56
56
  </tr>
57
57
  <tr class="top-aligned-row">
58
58
  <td><strong>Last Update:</strong></td>
59
- <td>Sun Oct 30 23:40:28 CET 2005</td>
59
+ <td>Thu Jul 20 20:03:26 CEST 2006</td>
60
60
  </tr>
61
61
  </table>
62
62
  </div>
@@ -56,7 +56,7 @@
56
56
  </tr>
57
57
  <tr class="top-aligned-row">
58
58
  <td><strong>Last Update:</strong></td>
59
- <td>Wed Nov 30 23:27:40 CET 2005</td>
59
+ <td>Thu Jul 20 20:14:21 CEST 2006</td>
60
60
  </tr>
61
61
  </table>
62
62
  </div>
@@ -56,7 +56,7 @@
56
56
  </tr>
57
57
  <tr class="top-aligned-row">
58
58
  <td><strong>Last Update:</strong></td>
59
- <td>Tue Nov 29 16:07:05 CET 2005</td>
59
+ <td>Thu Jul 20 20:49:33 CEST 2006</td>
60
60
  </tr>
61
61
  </table>
62
62
  </div>
@@ -56,7 +56,7 @@
56
56
  </tr>
57
57
  <tr class="top-aligned-row">
58
58
  <td><strong>Last Update:</strong></td>
59
- <td>Wed Nov 30 22:30:30 CET 2005</td>
59
+ <td>Thu Jul 20 20:11:34 CEST 2006</td>
60
60
  </tr>
61
61
  </table>
62
62
  </div>
@@ -56,7 +56,7 @@
56
56
  </tr>
57
57
  <tr class="top-aligned-row">
58
58
  <td><strong>Last Update:</strong></td>
59
- <td>Tue Nov 29 16:07:39 CET 2005</td>
59
+ <td>Thu Jul 20 20:11:20 CEST 2006</td>
60
60
  </tr>
61
61
  </table>
62
62
  </div>
@@ -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 Dec 01 00:16:20 CET 2005</td>
59
+ <td>Wed Apr 26 10:57:42 CEST 2006</td>
60
60
  </tr>
61
61
  </table>
62
62
  </div>
@@ -56,7 +56,7 @@
56
56
  </tr>
57
57
  <tr class="top-aligned-row">
58
58
  <td><strong>Last Update:</strong></td>
59
- <td>Tue Nov 29 16:08:11 CET 2005</td>
59
+ <td>Thu Jul 20 20:11:11 CEST 2006</td>
60
60
  </tr>
61
61
  </table>
62
62
  </div>
@@ -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 Dec 01 00:16:46 CET 2005</td>
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&nbsp;&nbsp;
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>Wed Nov 30 23:25:56 CET 2005</td>
59
+ <td>Thu Jul 20 18:08:51 CEST 2006</td>
60
60
  </tr>
61
61
  </table>
62
62
  </div>
@@ -56,7 +56,7 @@
56
56
  </tr>
57
57
  <tr class="top-aligned-row">
58
58
  <td><strong>Last Update:</strong></td>
59
- <td>Fri Sep 30 13:22:04 CEST 2005</td>
59
+ <td>Wed Apr 26 10:57:42 CEST 2006</td>
60
60
  </tr>
61
61
  </table>
62
62
  </div>
@@ -56,7 +56,7 @@
56
56
  </tr>
57
57
  <tr class="top-aligned-row">
58
58
  <td><strong>Last Update:</strong></td>
59
- <td>Fri Sep 30 13:22:04 CEST 2005</td>
59
+ <td>Wed Apr 26 10:57:42 CEST 2006</td>
60
60
  </tr>
61
61
  </table>
62
62
  </div>
@@ -56,7 +56,7 @@
56
56
  </tr>
57
57
  <tr class="top-aligned-row">
58
58
  <td><strong>Last Update:</strong></td>
59
- <td>Wed Nov 30 19:16:27 CET 2005</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&nbsp;&nbsp;
77
77
  uri&nbsp;&nbsp;
78
+ stringio&nbsp;&nbsp;
78
79
  </div>
79
80
  </div>
80
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>Thu Oct 20 00:15:23 CEST 2005</td>
59
+ <td>Wed Apr 26 10:57:42 CEST 2006</td>
60
60
  </tr>
61
61
  </table>
62
62
  </div>
@@ -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 Oct 20 00:15:23 CEST 2005</td>
59
+ <td>Wed Apr 26 10:57:42 CEST 2006</td>
60
60
  </tr>
61
61
  </table>
62
62
  </div>
@@ -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#M000028">add (Icalendar::Component)</a><br />
24
- <a href="classes/Icalendar/Timezone.html#M000023">add_component (Icalendar::Timezone)</a><br />
25
- <a href="classes/Icalendar/Component.html#M000027">add_component (Icalendar::Component)</a><br />
26
- <a href="classes/Icalendar/Event.html#M000042">alarm (Icalendar::Event)</a><br />
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#M000033">custom_property (Icalendar::Component)</a><br />
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/Calendar.html#M000044">event (Icalendar::Calendar)</a><br />
32
- <a href="classes/Icalendar/Calendar.html#M000047">freebusy (Icalendar::Calendar)</a><br />
33
- <a href="classes/HashAttrs.html#M000054">hash_accessor (HashAttrs)</a><br />
34
- <a href="classes/HashAttrs.html#M000052">hash_reader (HashAttrs)</a><br />
35
- <a href="classes/HashAttrs.html#M000053">hash_writer (HashAttrs)</a><br />
36
- <a href="classes/Icalendar/Component.html#M000035">ical_component (Icalendar::Component)</a><br />
37
- <a href="classes/Icalendar/Component.html#M000037">ical_multi_property (Icalendar::Component)</a><br />
38
- <a href="classes/Icalendar/Component.html#M000036">ical_property (Icalendar::Component)</a><br />
39
- <a href="classes/Icalendar/Calendar.html#M000046">journal (Icalendar::Calendar)</a><br />
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#M000038">method_missing (Icalendar::Component)</a><br />
45
- <a href="classes/Icalendar/Component.html#M000034">multi_property? (Icalendar::Component)</a><br />
46
- <a href="classes/Icalendar/Calendar.html#M000043">new (Icalendar::Calendar)</a><br />
47
- <a href="classes/Icalendar/Timezone.html#M000025">new (Icalendar::Timezone)</a><br />
48
- <a href="classes/Icalendar/Component.html#M000026">new (Icalendar::Component)</a><br />
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/Freebusy.html#M000049">new (Icalendar::Freebusy)</a><br />
51
- <a href="classes/Icalendar/Event.html#M000041">new (Icalendar::Event)</a><br />
52
- <a href="classes/Icalendar/Daylight.html#M000040">new (Icalendar::Daylight)</a><br />
53
- <a href="classes/Icalendar/Alarm.html#M000021">new (Icalendar::Alarm)</a><br />
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/Standard.html#M000015">new (Icalendar::Standard)</a><br />
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">next_line (Icalendar::Parser)</a><br />
59
- <a href="classes/Icalendar/Parser.html#M000020">parse (Icalendar::Parser)</a><br />
60
- <a href="classes/Icalendar/Component.html#M000030">print_component (Icalendar::Component)</a><br />
61
- <a href="classes/Icalendar/Component.html#M000032">print_parameter (Icalendar::Component)</a><br />
62
- <a href="classes/Icalendar/Component.html#M000031">print_properties (Icalendar::Component)</a><br />
63
- <a href="classes/Icalendar/Component.html#M000039">respond_to? (Icalendar::Component)</a><br />
64
- <a href="classes/Icalendar/Calendar.html#M000048">timezone (Icalendar::Calendar)</a><br />
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/Icalendar/Component.html#M000029">to_ical (Icalendar::Component)</a><br />
71
- <a href="classes/String.html#M000012">to_ical (String)</a><br />
72
- <a href="classes/Fixnum.html#M000011">to_ical (Fixnum)</a><br />
73
- <a href="classes/URI/Generic.html#M000051">to_ical (URI::Generic)</a><br />
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
+
@@ -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
- # Create a calendar with a single event (Method 1)
9
- cal = Icalendar::Calendar.new
10
- event = Icalendar::Event.new
11
-
12
- # Set some properties for this event
13
- event.user_id = "joe-bob@somewhere.net"
14
- event.timestamp = DateTime.now
15
- event.start = Date.new(2005, 04, 29)
16
- event.end = Date.new(2005, 04, 28)
17
- event.summary = "Meeting with the man."
18
-
19
- # Notice how 'ip_' is prepended for property names that conflict
20
- # with ruby keywords or methods...
21
- event.ip_class = "PRIVATE"
22
-
23
- # Now add it to the calendar
24
- cal.add event
25
-
26
- # Create a calendar with a single event (Method 2)
27
- cal2 = Icalendar::Calendar.new
28
- event = cal.event # This automatically adds the event to the calendar
29
- event.user_id = "joe-bob@somewhere.net"
30
- event.timestamp = DateTime.now
31
-
32
- # Create a calendar with a single event (Method 3)
33
- cal3 = Icalendar::Calendar.new
34
- cal3.event do
35
- user_id "joe-bob@somewhere.net"
36
- event.timestamp DateTime.now
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 calendars as strings to write to a file,
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: