icalendar 0.96.4 → 0.97

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.
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: