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
@@ -0,0 +1,20 @@
|
|
1
|
+
<?xml version="1.0" encoding="iso-8859-1"?>
|
2
|
+
<!DOCTYPE html
|
3
|
+
PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
|
4
|
+
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
5
|
+
|
6
|
+
<html>
|
7
|
+
<head>
|
8
|
+
<title>metaclass (Object)</title>
|
9
|
+
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
|
10
|
+
<link rel="stylesheet" href="../.././rdoc-style.css" type="text/css" media="screen" />
|
11
|
+
</head>
|
12
|
+
<body class="standalone-code">
|
13
|
+
<pre><span class="ruby-comment cmt"># File lib/meta.rb, line 4</span>
|
14
|
+
<span class="ruby-keyword kw">def</span> <span class="ruby-identifier">metaclass</span>
|
15
|
+
<span class="ruby-keyword kw">class</span> <span class="ruby-operator"><<</span> <span class="ruby-keyword kw">self</span>
|
16
|
+
<span class="ruby-keyword kw">self</span>
|
17
|
+
<span class="ruby-keyword kw">end</span>
|
18
|
+
<span class="ruby-keyword kw">end</span></pre>
|
19
|
+
</body>
|
20
|
+
</html>
|
@@ -0,0 +1,18 @@
|
|
1
|
+
<?xml version="1.0" encoding="iso-8859-1"?>
|
2
|
+
<!DOCTYPE html
|
3
|
+
PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
|
4
|
+
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
5
|
+
|
6
|
+
<html>
|
7
|
+
<head>
|
8
|
+
<title>meta_eval (Object)</title>
|
9
|
+
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
|
10
|
+
<link rel="stylesheet" href="../.././rdoc-style.css" type="text/css" media="screen" />
|
11
|
+
</head>
|
12
|
+
<body class="standalone-code">
|
13
|
+
<pre><span class="ruby-comment cmt"># File lib/meta.rb, line 11</span>
|
14
|
+
<span class="ruby-keyword kw">def</span> <span class="ruby-identifier">meta_eval</span> <span class="ruby-operator">&</span><span class="ruby-identifier">blk</span>
|
15
|
+
<span class="ruby-identifier">metaclass</span>.<span class="ruby-identifier">instance_eval</span> <span class="ruby-operator">&</span><span class="ruby-identifier">blk</span>
|
16
|
+
<span class="ruby-keyword kw">end</span></pre>
|
17
|
+
</body>
|
18
|
+
</html>
|
@@ -0,0 +1,20 @@
|
|
1
|
+
<?xml version="1.0" encoding="iso-8859-1"?>
|
2
|
+
<!DOCTYPE html
|
3
|
+
PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
|
4
|
+
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
5
|
+
|
6
|
+
<html>
|
7
|
+
<head>
|
8
|
+
<title>meta_include (Object)</title>
|
9
|
+
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
|
10
|
+
<link rel="stylesheet" href="../.././rdoc-style.css" type="text/css" media="screen" />
|
11
|
+
</head>
|
12
|
+
<body class="standalone-code">
|
13
|
+
<pre><span class="ruby-comment cmt"># File lib/meta.rb, line 17</span>
|
14
|
+
<span class="ruby-keyword kw">def</span> <span class="ruby-identifier">meta_include</span> <span class="ruby-identifier">mod</span>
|
15
|
+
<span class="ruby-identifier">meta_eval</span> <span class="ruby-keyword kw">do</span>
|
16
|
+
<span class="ruby-identifier">include</span> <span class="ruby-identifier">mod</span>
|
17
|
+
<span class="ruby-keyword kw">end</span>
|
18
|
+
<span class="ruby-keyword kw">end</span></pre>
|
19
|
+
</body>
|
20
|
+
</html>
|
@@ -0,0 +1,18 @@
|
|
1
|
+
<?xml version="1.0" encoding="iso-8859-1"?>
|
2
|
+
<!DOCTYPE html
|
3
|
+
PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
|
4
|
+
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
5
|
+
|
6
|
+
<html>
|
7
|
+
<head>
|
8
|
+
<title>meta_def (Object)</title>
|
9
|
+
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
|
10
|
+
<link rel="stylesheet" href="../.././rdoc-style.css" type="text/css" media="screen" />
|
11
|
+
</head>
|
12
|
+
<body class="standalone-code">
|
13
|
+
<pre><span class="ruby-comment cmt"># File lib/meta.rb, line 24</span>
|
14
|
+
<span class="ruby-keyword kw">def</span> <span class="ruby-identifier">meta_def</span> <span class="ruby-identifier">name</span>, <span class="ruby-operator">&</span><span class="ruby-identifier">blk</span>
|
15
|
+
<span class="ruby-identifier">meta_eval</span> { <span class="ruby-identifier">define_method</span> <span class="ruby-identifier">name</span>, <span class="ruby-operator">&</span><span class="ruby-identifier">blk</span> }
|
16
|
+
<span class="ruby-keyword kw">end</span></pre>
|
17
|
+
</body>
|
18
|
+
</html>
|
@@ -0,0 +1,18 @@
|
|
1
|
+
<?xml version="1.0" encoding="iso-8859-1"?>
|
2
|
+
<!DOCTYPE html
|
3
|
+
PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
|
4
|
+
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
5
|
+
|
6
|
+
<html>
|
7
|
+
<head>
|
8
|
+
<title>class_def (Object)</title>
|
9
|
+
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
|
10
|
+
<link rel="stylesheet" href="../.././rdoc-style.css" type="text/css" media="screen" />
|
11
|
+
</head>
|
12
|
+
<body class="standalone-code">
|
13
|
+
<pre><span class="ruby-comment cmt"># File lib/meta.rb, line 29</span>
|
14
|
+
<span class="ruby-keyword kw">def</span> <span class="ruby-identifier">class_def</span> <span class="ruby-identifier">name</span>, <span class="ruby-operator">&</span><span class="ruby-identifier">blk</span>
|
15
|
+
<span class="ruby-identifier">class_eval</span> { <span class="ruby-identifier">define_method</span> <span class="ruby-identifier">name</span>, <span class="ruby-operator">&</span><span class="ruby-identifier">blk</span> }
|
16
|
+
<span class="ruby-keyword kw">end</span></pre>
|
17
|
+
</body>
|
18
|
+
</html>
|
@@ -114,22 +114,13 @@
|
|
114
114
|
<a name="M000012"></a>
|
115
115
|
|
116
116
|
<div class="method-heading">
|
117
|
-
<a href="
|
117
|
+
<a href="String.src/M000012.html" target="Code" class="method-signature"
|
118
|
+
onclick="popupCode('String.src/M000012.html');return false;">
|
118
119
|
<span class="method-name">to_ical</span><span class="method-args">()</span>
|
119
120
|
</a>
|
120
121
|
</div>
|
121
122
|
|
122
123
|
<div class="method-description">
|
123
|
-
<p><a class="source-toggle" href="#"
|
124
|
-
onclick="toggleCode('M000012-source');return false;">[Source]</a></p>
|
125
|
-
<div class="method-source-code" id="M000012-source">
|
126
|
-
<pre>
|
127
|
-
<span class="ruby-comment cmt"># File lib/icalendar/conversions.rb, line 22</span>
|
128
|
-
22: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">to_ical</span>
|
129
|
-
23: <span class="ruby-node">"#{self.dump[1...-1]}"</span>
|
130
|
-
24: <span class="ruby-keyword kw">end</span>
|
131
|
-
</pre>
|
132
|
-
</div>
|
133
124
|
</div>
|
134
125
|
</div>
|
135
126
|
|
@@ -0,0 +1,18 @@
|
|
1
|
+
<?xml version="1.0" encoding="iso-8859-1"?>
|
2
|
+
<!DOCTYPE html
|
3
|
+
PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
|
4
|
+
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
5
|
+
|
6
|
+
<html>
|
7
|
+
<head>
|
8
|
+
<title>to_ical (String)</title>
|
9
|
+
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
|
10
|
+
<link rel="stylesheet" href="../.././rdoc-style.css" type="text/css" media="screen" />
|
11
|
+
</head>
|
12
|
+
<body class="standalone-code">
|
13
|
+
<pre><span class="ruby-comment cmt"># File lib/icalendar/conversions.rb, line 22</span>
|
14
|
+
<span class="ruby-keyword kw">def</span> <span class="ruby-identifier">to_ical</span>
|
15
|
+
<span class="ruby-node">"#{self}"</span>
|
16
|
+
<span class="ruby-keyword kw">end</span></pre>
|
17
|
+
</body>
|
18
|
+
</html>
|
data/docs/api/classes/Time.html
CHANGED
@@ -114,37 +114,13 @@
|
|
114
114
|
<a name="M000001"></a>
|
115
115
|
|
116
116
|
<div class="method-heading">
|
117
|
-
<a href="
|
117
|
+
<a href="Time.src/M000001.html" target="Code" class="method-signature"
|
118
|
+
onclick="popupCode('Time.src/M000001.html');return false;">
|
118
119
|
<span class="method-name">to_ical</span><span class="method-args">(utc = false)</span>
|
119
120
|
</a>
|
120
121
|
</div>
|
121
122
|
|
122
123
|
<div class="method-description">
|
123
|
-
<p><a class="source-toggle" href="#"
|
124
|
-
onclick="toggleCode('M000001-source');return false;">[Source]</a></p>
|
125
|
-
<div class="method-source-code" id="M000001-source">
|
126
|
-
<pre>
|
127
|
-
<span class="ruby-comment cmt"># File lib/icalendar/conversions.rb, line 109</span>
|
128
|
-
109: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">to_ical</span>(<span class="ruby-identifier">utc</span> = <span class="ruby-keyword kw">false</span>)
|
129
|
-
110: <span class="ruby-comment cmt"># Double digit hour</span>
|
130
|
-
111: <span class="ruby-identifier">s</span> <span class="ruby-operator"><<</span> <span class="ruby-value str">"0"</span> <span class="ruby-keyword kw">unless</span> <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">hour</span> <span class="ruby-operator">></span> <span class="ruby-value">9</span>
|
131
|
-
112: <span class="ruby-identifier">s</span> <span class="ruby-operator"><<</span> <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">hour</span>.<span class="ruby-identifier">to_s</span>
|
132
|
-
113:
|
133
|
-
114: <span class="ruby-comment cmt"># Double digit minute</span>
|
134
|
-
115: <span class="ruby-identifier">s</span> <span class="ruby-operator"><<</span> <span class="ruby-value str">"0"</span> <span class="ruby-keyword kw">unless</span> <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">min</span> <span class="ruby-operator">></span> <span class="ruby-value">9</span>
|
135
|
-
116: <span class="ruby-identifier">s</span> <span class="ruby-operator"><<</span> <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">min</span>.<span class="ruby-identifier">to_s</span>
|
136
|
-
117:
|
137
|
-
118: <span class="ruby-comment cmt"># Double digit second</span>
|
138
|
-
119: <span class="ruby-identifier">s</span> <span class="ruby-operator"><<</span> <span class="ruby-value str">"0"</span> <span class="ruby-keyword kw">unless</span> <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">sec</span> <span class="ruby-operator">></span> <span class="ruby-value">9</span>
|
139
|
-
120: <span class="ruby-identifier">s</span> <span class="ruby-operator"><<</span> <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">sec</span>.<span class="ruby-identifier">to_s</span>
|
140
|
-
121:
|
141
|
-
122: <span class="ruby-comment cmt"># UTC time gets a Z suffix</span>
|
142
|
-
123: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">utc</span>
|
143
|
-
124: <span class="ruby-identifier">s</span> <span class="ruby-operator"><<</span> <span class="ruby-value str">"Z"</span>
|
144
|
-
125: <span class="ruby-keyword kw">end</span>
|
145
|
-
126: <span class="ruby-keyword kw">end</span>
|
146
|
-
</pre>
|
147
|
-
</div>
|
148
124
|
</div>
|
149
125
|
</div>
|
150
126
|
|
@@ -0,0 +1,37 @@
|
|
1
|
+
<?xml version="1.0" encoding="iso-8859-1"?>
|
2
|
+
<!DOCTYPE html
|
3
|
+
PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
|
4
|
+
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
5
|
+
|
6
|
+
<html>
|
7
|
+
<head>
|
8
|
+
<title>to_ical (Time)</title>
|
9
|
+
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
|
10
|
+
<link rel="stylesheet" href="../.././rdoc-style.css" type="text/css" media="screen" />
|
11
|
+
</head>
|
12
|
+
<body class="standalone-code">
|
13
|
+
<pre><span class="ruby-comment cmt"># File lib/icalendar/conversions.rb, line 111</span>
|
14
|
+
<span class="ruby-keyword kw">def</span> <span class="ruby-identifier">to_ical</span>(<span class="ruby-identifier">utc</span> = <span class="ruby-keyword kw">false</span>)
|
15
|
+
<span class="ruby-identifier">s</span> = <span class="ruby-value str">""</span>
|
16
|
+
|
17
|
+
<span class="ruby-comment cmt"># Double digit hour</span>
|
18
|
+
<span class="ruby-identifier">s</span> <span class="ruby-operator"><<</span> <span class="ruby-value str">"0"</span> <span class="ruby-keyword kw">unless</span> <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">hour</span> <span class="ruby-operator">></span> <span class="ruby-value">9</span>
|
19
|
+
<span class="ruby-identifier">s</span> <span class="ruby-operator"><<</span> <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">hour</span>.<span class="ruby-identifier">to_s</span>
|
20
|
+
|
21
|
+
<span class="ruby-comment cmt"># Double digit minute</span>
|
22
|
+
<span class="ruby-identifier">s</span> <span class="ruby-operator"><<</span> <span class="ruby-value str">"0"</span> <span class="ruby-keyword kw">unless</span> <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">min</span> <span class="ruby-operator">></span> <span class="ruby-value">9</span>
|
23
|
+
<span class="ruby-identifier">s</span> <span class="ruby-operator"><<</span> <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">min</span>.<span class="ruby-identifier">to_s</span>
|
24
|
+
|
25
|
+
<span class="ruby-comment cmt"># Double digit second</span>
|
26
|
+
<span class="ruby-identifier">s</span> <span class="ruby-operator"><<</span> <span class="ruby-value str">"0"</span> <span class="ruby-keyword kw">unless</span> <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">sec</span> <span class="ruby-operator">></span> <span class="ruby-value">9</span>
|
27
|
+
<span class="ruby-identifier">s</span> <span class="ruby-operator"><<</span> <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">sec</span>.<span class="ruby-identifier">to_s</span>
|
28
|
+
|
29
|
+
<span class="ruby-comment cmt"># UTC time gets a Z suffix</span>
|
30
|
+
<span class="ruby-keyword kw">if</span> <span class="ruby-identifier">utc</span>
|
31
|
+
<span class="ruby-identifier">s</span> <span class="ruby-operator"><<</span> <span class="ruby-value str">"Z"</span>
|
32
|
+
<span class="ruby-keyword kw">end</span>
|
33
|
+
|
34
|
+
<span class="ruby-identifier">s</span>
|
35
|
+
<span class="ruby-keyword kw">end</span></pre>
|
36
|
+
</body>
|
37
|
+
</html>
|
@@ -88,7 +88,7 @@
|
|
88
88
|
<h3 class="section-bar">Methods</h3>
|
89
89
|
|
90
90
|
<div class="name-list">
|
91
|
-
<a href="#
|
91
|
+
<a href="#M000067">to_ical</a>
|
92
92
|
</div>
|
93
93
|
</div>
|
94
94
|
|
@@ -110,26 +110,17 @@
|
|
110
110
|
<div id="methods">
|
111
111
|
<h3 class="section-bar">Public Instance methods</h3>
|
112
112
|
|
113
|
-
<div id="method-
|
114
|
-
<a name="
|
113
|
+
<div id="method-M000067" class="method-detail">
|
114
|
+
<a name="M000067"></a>
|
115
115
|
|
116
116
|
<div class="method-heading">
|
117
|
-
<a href="
|
117
|
+
<a href="Generic.src/M000067.html" target="Code" class="method-signature"
|
118
|
+
onclick="popupCode('Generic.src/M000067.html');return false;">
|
118
119
|
<span class="method-name">to_ical</span><span class="method-args">()</span>
|
119
120
|
</a>
|
120
121
|
</div>
|
121
122
|
|
122
123
|
<div class="method-description">
|
123
|
-
<p><a class="source-toggle" href="#"
|
124
|
-
onclick="toggleCode('M000051-source');return false;">[Source]</a></p>
|
125
|
-
<div class="method-source-code" id="M000051-source">
|
126
|
-
<pre>
|
127
|
-
<span class="ruby-comment cmt"># File lib/icalendar/conversions.rb, line 47</span>
|
128
|
-
47: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">to_ical</span>
|
129
|
-
48: <span class="ruby-node">"#{self}"</span>
|
130
|
-
49: <span class="ruby-keyword kw">end</span>
|
131
|
-
</pre>
|
132
|
-
</div>
|
133
124
|
</div>
|
134
125
|
</div>
|
135
126
|
|
@@ -0,0 +1,18 @@
|
|
1
|
+
<?xml version="1.0" encoding="iso-8859-1"?>
|
2
|
+
<!DOCTYPE html
|
3
|
+
PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
|
4
|
+
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
5
|
+
|
6
|
+
<html>
|
7
|
+
<head>
|
8
|
+
<title>to_ical (URI::Generic)</title>
|
9
|
+
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
|
10
|
+
<link rel="stylesheet" href="../../.././rdoc-style.css" type="text/css" media="screen" />
|
11
|
+
</head>
|
12
|
+
<body class="standalone-code">
|
13
|
+
<pre><span class="ruby-comment cmt"># File lib/icalendar/conversions.rb, line 49</span>
|
14
|
+
<span class="ruby-keyword kw">def</span> <span class="ruby-identifier">to_ical</span>
|
15
|
+
<span class="ruby-node">"#{self}"</span>
|
16
|
+
<span class="ruby-keyword kw">end</span></pre>
|
17
|
+
</body>
|
18
|
+
</html>
|
data/docs/api/created.rid
CHANGED
@@ -1 +1 @@
|
|
1
|
-
Thu
|
1
|
+
Thu Jul 20 22:04:34 CEST 2006
|
data/docs/api/files/COPYING.html
CHANGED
data/docs/api/files/GPL.html
CHANGED
data/docs/api/files/README.html
CHANGED
@@ -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 21:24:55 CEST 2006</td>
|
60
60
|
</tr>
|
61
61
|
</table>
|
62
62
|
</div>
|
@@ -103,73 +103,96 @@ form of unwired transport such as infrared might also be used.
|
|
103
103
|
<p>
|
104
104
|
Now for some examples:
|
105
105
|
</p>
|
106
|
-
<
|
107
|
-
|
106
|
+
<p>
|
107
|
+
## Probably want to start with this
|
108
|
+
</p>
|
109
|
+
<pre>
|
110
|
+
require 'rubygems' # Unless you install from the tarball or zip.
|
111
|
+
require 'icalendar'
|
112
|
+
require 'date'
|
108
113
|
|
114
|
+
include Icalendar # Probably do this in your class to limit namespace overlap
|
115
|
+
</pre>
|
116
|
+
<p>
|
117
|
+
## Creating calendars and events is easy.
|
118
|
+
</p>
|
109
119
|
<pre>
|
110
|
-
|
111
|
-
|
112
|
-
|
113
|
-
|
114
|
-
|
115
|
-
|
116
|
-
|
117
|
-
|
118
|
-
|
119
|
-
event.summary = "Meeting with the man."
|
120
|
-
event.klass = "PRIVATE"
|
121
|
-
|
122
|
-
# Now add it to the calendar
|
123
|
-
cal.add event
|
124
|
-
|
125
|
-
# Create a calendar with a single event (Method 2)
|
126
|
-
cal2 = Icalendar::Calendar.new
|
127
|
-
event = cal.event # This automatically adds the event to the calendar
|
128
|
-
event.user_id = "joe-bob@somewhere.net"
|
129
|
-
event.timestamp = DateTime.now
|
130
|
-
|
131
|
-
# Create a calendar with a single event (Method 3)
|
132
|
-
cal3 = Icalendar::Calendar.new
|
133
|
-
cal3.event do
|
134
|
-
user_id "joe-bob@somewhere.net"
|
135
|
-
timestamp DateTime.now
|
136
|
-
end
|
137
|
-
|
138
|
-
# We can output the calendars as strings to write to a file,
|
139
|
-
# network port, database etc.
|
140
|
-
cal_string = cal.to_ical
|
141
|
-
puts cal_string
|
120
|
+
# Create a calendar with an event (standard method)
|
121
|
+
cal = Calendar.new
|
122
|
+
cal.event do
|
123
|
+
dtstart Date.new(2005, 04, 29)
|
124
|
+
dtend Date.new(2005, 04, 28)
|
125
|
+
summary "Meeting with the man."
|
126
|
+
description "Have a long lunch meeting and decide nothing..."
|
127
|
+
klass "PRIVATE"
|
128
|
+
end
|
142
129
|
</pre>
|
143
|
-
|
144
|
-
|
145
|
-
|
130
|
+
<p>
|
131
|
+
## Or you can make events like this
|
132
|
+
</p>
|
146
133
|
<pre>
|
147
|
-
|
148
|
-
|
134
|
+
event = Event.new
|
135
|
+
event.start = DateTime.civil(2006, 6, 23, 8, 30)
|
136
|
+
event.summary = "A great event!"
|
137
|
+
cal.add_event(event)
|
138
|
+
|
139
|
+
event2 = cal.event # This automatically adds the event to the calendar
|
140
|
+
event2.start = DateTime.civil(2006, 6, 24, 8, 30)
|
141
|
+
event2.summary = "Another great event!"
|
142
|
+
|
143
|
+
# Now with support for property parameters
|
144
|
+
params = {"ALTREP" =>['"http://my.language.net"'], "LANGUAGE" => ["SPANISH"]}
|
145
|
+
|
146
|
+
cal.event do
|
147
|
+
dtstart Date.new(2005, 04, 29)
|
148
|
+
dtend Date.new(2005, 04, 28)
|
149
|
+
summary "This is a summary with params.", params
|
150
|
+
end
|
149
151
|
|
150
|
-
#
|
152
|
+
# We can output the calendar as a string to write to a file,
|
153
|
+
# network port, database etc.
|
154
|
+
cal_string = cal.to_ical
|
155
|
+
puts cal_string
|
156
|
+
</pre>
|
157
|
+
<h2>Parsing iCalendars:</h2>
|
158
|
+
<pre>
|
159
|
+
# Open a file or pass a string to the parser
|
151
160
|
cal_file = File.open("single_event.ics")
|
152
161
|
|
153
162
|
# Parser returns an array of calendars because a single file
|
154
|
-
# can have multiple
|
155
|
-
cals = Icalendar
|
163
|
+
# can have multiple calendars.
|
164
|
+
cals = Icalendar.parse(cal_file)
|
156
165
|
cal = cals.first
|
157
166
|
|
158
167
|
# Now you can access the cal object in just the same way I created it
|
159
168
|
event = cal.events.first
|
160
169
|
|
161
|
-
puts "
|
170
|
+
puts "start date-time: " + event.dtstart
|
162
171
|
puts "summary: " + event.summary
|
163
172
|
</pre>
|
164
|
-
<h2>
|
173
|
+
<h2>Finders:</h2>
|
174
|
+
<p>
|
175
|
+
Often times in web apps and other interactive applications you’ll
|
176
|
+
need to lookup items in a calendar to make changes or get details. Now you
|
177
|
+
can find everything by the unique id automatically associated with all
|
178
|
+
components.
|
179
|
+
</p>
|
165
180
|
<pre>
|
166
|
-
|
167
|
-
|
168
|
-
|
169
|
-
|
170
|
-
|
171
|
-
|
181
|
+
cal = Calendar.new
|
182
|
+
10.times { cal.event } # Create 10 events with only default data.
|
183
|
+
some_event = cal.events[5] # Grab it from the array of events
|
184
|
+
|
185
|
+
# Use the uid as the key in your app
|
186
|
+
key = some_event.uid
|
187
|
+
|
188
|
+
# so later you can find it.
|
189
|
+
same_event = cal.find_event(key)
|
172
190
|
</pre>
|
191
|
+
<h2>Examples:</h2>
|
192
|
+
<p>
|
193
|
+
Check the unit tests for examples of most things you’ll want to do,
|
194
|
+
but please send me example code or let me know what’s missing.
|
195
|
+
</p>
|
173
196
|
<h2>Download</h2>
|
174
197
|
<p>
|
175
198
|
The latest release version of this library can be found at
|
@@ -178,17 +201,6 @@ The latest release version of this library can be found at
|
|
178
201
|
<li><a
|
179
202
|
href="http://rubyforge.org/projects/icalendar">rubyforge.org/projects/icalendar</a>/
|
180
203
|
|
181
|
-
</li>
|
182
|
-
</ul>
|
183
|
-
<p>
|
184
|
-
If you would like to help with development or use the most current version
|
185
|
-
you can check out the tree from the subversion repository:
|
186
|
-
</p>
|
187
|
-
<ul>
|
188
|
-
<li>svn co <a
|
189
|
-
href="https://rosejn.net/svn/icalendar">rosejn.net/svn/icalendar</a>
|
190
|
-
icalendar
|
191
|
-
|
192
204
|
</li>
|
193
205
|
</ul>
|
194
206
|
<p>
|
@@ -201,10 +213,10 @@ Documentation can be found at
|
|
201
213
|
</ul>
|
202
214
|
<h2>Installation</h2>
|
203
215
|
<p>
|
204
|
-
|
216
|
+
It’s all about rubygems:
|
205
217
|
</p>
|
206
218
|
<p>
|
207
|
-
$ gem install icalendar
|
219
|
+
$ sudo gem install icalendar
|
208
220
|
</p>
|
209
221
|
<h2>License</h2>
|
210
222
|
<p>
|