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
data/README CHANGED
@@ -30,68 +30,86 @@ transport such as infrared might also be used.
30
30
 
31
31
  Now for some examples:
32
32
 
33
- * Creating iCalendars.
33
+ ## Probably want to start with this
34
34
 
35
- # Create a calendar with a single event (Method 1)
36
- cal = Icalendar::Calendar.new
37
- event = Icalendar::Event.new
38
-
39
- # Set some properties for this event
40
- event.user_id = "joe-bob@somewhere.net"
41
- event.timestamp = DateTime.now
42
- event.start = Date.new(2005, 04, 29)
43
- event.end = Date.new(2005, 04, 28)
44
- event.summary = "Meeting with the man."
45
- event.klass = "PRIVATE"
46
-
47
- # Now add it to the calendar
48
- cal.add event
49
-
50
- # Create a calendar with a single event (Method 2)
51
- cal2 = Icalendar::Calendar.new
52
- event = cal.event # This automatically adds the event to the calendar
53
- event.user_id = "joe-bob@somewhere.net"
54
- event.timestamp = DateTime.now
55
-
56
- # Create a calendar with a single event (Method 3)
57
- cal3 = Icalendar::Calendar.new
58
- cal3.event do
59
- user_id "joe-bob@somewhere.net"
60
- timestamp DateTime.now
61
- end
35
+ require 'rubygems' # Unless you install from the tarball or zip.
36
+ require 'icalendar'
37
+ require 'date'
38
+
39
+ include Icalendar # Probably do this in your class to limit namespace overlap
40
+
41
+ ## Creating calendars and events is easy.
42
+
43
+ # Create a calendar with an event (standard method)
44
+ cal = Calendar.new
45
+ cal.event do
46
+ dtstart Date.new(2005, 04, 29)
47
+ dtend Date.new(2005, 04, 28)
48
+ summary "Meeting with the man."
49
+ description "Have a long lunch meeting and decide nothing..."
50
+ klass "PRIVATE"
51
+ end
52
+
53
+ ## Or you can make events like this
54
+ event = Event.new
55
+ event.start = DateTime.civil(2006, 6, 23, 8, 30)
56
+ event.summary = "A great event!"
57
+ cal.add_event(event)
58
+
59
+ event2 = cal.event # This automatically adds the event to the calendar
60
+ event2.start = DateTime.civil(2006, 6, 24, 8, 30)
61
+ event2.summary = "Another great event!"
62
+
63
+ # Now with support for property parameters
64
+ params = {"ALTREP" =>['"http://my.language.net"'], "LANGUAGE" => ["SPANISH"]}
65
+
66
+ cal.event do
67
+ dtstart Date.new(2005, 04, 29)
68
+ dtend Date.new(2005, 04, 28)
69
+ summary "This is a summary with params.", params
70
+ end
62
71
 
63
- # We can output the calendars as strings to write to a file,
64
- # network port, database etc.
65
- cal_string = cal.to_ical
66
- puts cal_string
72
+ # We can output the calendar as a string to write to a file,
73
+ # network port, database etc.
74
+ cal_string = cal.to_ical
75
+ puts cal_string
67
76
 
68
77
  == Parsing iCalendars:
69
78
 
70
- require 'icalendar'
71
- require 'date'
72
-
73
- # Open a file or string to parse
79
+ # Open a file or pass a string to the parser
74
80
  cal_file = File.open("single_event.ics")
75
81
 
76
82
  # Parser returns an array of calendars because a single file
77
- # can have multiple calendar objects.
78
- cals = Icalendar::Parser.new(cal_file).parse
83
+ # can have multiple calendars.
84
+ cals = Icalendar.parse(cal_file)
79
85
  cal = cals.first
80
86
 
81
87
  # Now you can access the cal object in just the same way I created it
82
88
  event = cal.events.first
83
89
 
84
- puts "user_id: " + event.user_id
90
+ puts "start date-time: " + event.dtstart
85
91
  puts "summary: " + event.summary
92
+
93
+ == Finders:
94
+
95
+ Often times in web apps and other interactive applications you'll need to
96
+ lookup items in a calendar to make changes or get details. Now you can find
97
+ everything by the unique id automatically associated with all components.
86
98
 
87
- == Including the iCalendar library when using RubyGem:
99
+ cal = Calendar.new
100
+ 10.times { cal.event } # Create 10 events with only default data.
101
+ some_event = cal.events[5] # Grab it from the array of events
88
102
 
89
- begin
90
- require 'rubygems'
91
- require_gem 'icalendar', ">= 0.96"
92
- rescue LoadError
93
- require 'icalendar'
94
- end
103
+ # Use the uid as the key in your app
104
+ key = some_event.uid
105
+
106
+ # so later you can find it.
107
+ same_event = cal.find_event(key)
108
+
109
+ == Examples:
110
+
111
+ Check the unit tests for examples of most things you'll want to do, but please
112
+ send me example code or let me know what's missing.
95
113
 
96
114
  == Download
97
115
 
@@ -99,20 +117,15 @@ The latest release version of this library can be found at
99
117
 
100
118
  * http://rubyforge.org/projects/icalendar/
101
119
 
102
- If you would like to help with development or use the most current version
103
- you can check out the tree from the subversion repository:
104
-
105
- * svn co https://rosejn.net/svn/icalendar icalendar
106
-
107
120
  Documentation can be found at
108
121
 
109
122
  * http://icalendar.rubyforge.org/
110
123
 
111
124
  == Installation
112
125
 
113
- This library uses rubygems for distribution and installation:
126
+ It's all about rubygems:
114
127
 
115
- $ gem install icalendar
128
+ $ sudo gem install icalendar
116
129
 
117
130
  == License
118
131
 
data/Rakefile CHANGED
@@ -2,8 +2,10 @@ require 'rubygems'
2
2
  require 'rake'
3
3
  require 'rake/testtask'
4
4
  require 'rake/rdoctask'
5
+ require 'rake/clean'
6
+ require 'rake/contrib/sshpublisher'
5
7
 
6
- PKG_VERSION = "0.96.4"
8
+ PKG_VERSION = "0.97"
7
9
 
8
10
  $VERBOSE = nil
9
11
  TEST_CHANGES_SINCE = Time.now - 600 # Recent tests = changed in last 10 minutes
@@ -11,28 +13,6 @@ TEST_CHANGES_SINCE = Time.now - 600 # Recent tests = changed in last 10 minutes
11
13
  desc "Run all the unit tests"
12
14
  task :default => [ :test, :lines ]
13
15
 
14
- # Look up tests for recently modified sources.
15
- def recent_tests(source_pattern, test_path, touched_since = 10.minutes.ago)
16
- FileList[source_pattern].map do |path|
17
- if File.mtime(path) > touched_since
18
- test = "#{test_path}/#{File.basename(path, '.rb')}_test.rb"
19
- test if File.exists?(test)
20
- end
21
- end.compact
22
- end
23
-
24
- desc 'Test recent changes.'
25
- Rake::TestTask.new(:rtest) do |t|
26
- since = TEST_CHANGES_SINCE
27
- touched = FileList['test/**/*_test.rb'].select { |path| File.mtime(path) > since } +
28
- recent_tests('lib/icalendar/*.rb', 'test', since) +
29
- recent_tests('lib/icalendar/component/*.rb', 'test/component', since)
30
-
31
- t.libs << 'test'
32
- t.verbose = true
33
- t.test_files = touched.uniq
34
- end
35
-
36
16
  desc "Run the unit tests in test"
37
17
  Rake::TestTask.new(:test) { |t|
38
18
  t.libs << "test"
@@ -40,6 +20,30 @@ Rake::TestTask.new(:test) { |t|
40
20
  t.verbose = true
41
21
  }
42
22
 
23
+ # rcov code coverage
24
+ rcov_path = '/usr/local/bin/rcov'
25
+ rcov_test_output = "./test/coverage"
26
+ rcov_exclude = "interactive.rb,read_write.rb,single_event.ics,simplecal,life.ics"
27
+
28
+ # Add our created paths to the 'rake clobber' list
29
+ CLOBBER.include(rcov_test_output)
30
+
31
+ desc 'Removes all previous unit test coverage information'
32
+ task (:reset_unit_test_coverage) do |t|
33
+ rm_rf rcov_unit_test_output
34
+ mkdir rcov_unit_test_output
35
+ end
36
+
37
+ desc 'Run all unit tests with Rcov to measure coverage'
38
+ Rake::TestTask.new(:rcov) do |t|
39
+ t.libs << "test"
40
+ t.pattern = 'test/**/*_test.rb'
41
+ t.ruby_opts << rcov_path
42
+ t.ruby_opts << "-o #{rcov_test_output}"
43
+ t.ruby_opts << "-x #{rcov_exclude}"
44
+ t.verbose = true
45
+ end
46
+
43
47
  # Generate the RDoc documentation
44
48
  Rake::RDocTask.new(:doc) { |rdoc|
45
49
  rdoc.main = 'README'
@@ -47,7 +51,7 @@ Rake::RDocTask.new(:doc) { |rdoc|
47
51
  rdoc.rdoc_files.include('GPL', 'COPYING')
48
52
  rdoc.rdoc_dir = 'docs/api'
49
53
  rdoc.title = "iCalendar -- Internet Calendaring for Ruby"
50
- rdoc.options << "--include examples/ --line-numbers --inline-source"
54
+ rdoc.options << "--include=examples --line-numbers --inline-source"
51
55
  rdoc.options << "--accessor=ical_component,ical_property,ical_multi_property"
52
56
  }
53
57
 
@@ -80,6 +84,11 @@ Rake::GemPackageTask.new(spec) do |pkg|
80
84
  pkg.need_zip = true
81
85
  end
82
86
 
87
+ desc 'Install the gem globally (requires sudo)'
88
+ task :install => :package do |t|
89
+ `sudo gem install pkg/icalendar-#{PKG_VERSION}.gem`
90
+ end
91
+
83
92
  task :lines do
84
93
  lines = 0
85
94
  codelines = 0
@@ -80,6 +80,13 @@
80
80
 
81
81
  <div id="contextContent">
82
82
 
83
+ <div id="description">
84
+ <p>
85
+ From the spec: &quot;Values in a list of values MUST be separated by a
86
+ COMMA character (US-ASCII decimal 44).&quot;
87
+ </p>
88
+
89
+ </div>
83
90
 
84
91
 
85
92
  </div>
@@ -114,22 +121,13 @@
114
121
  <a name="M000002"></a>
115
122
 
116
123
  <div class="method-heading">
117
- <a href="#M000002" class="method-signature">
124
+ <a href="Array.src/M000002.html" target="Code" class="method-signature"
125
+ onclick="popupCode('Array.src/M000002.html');return false;">
118
126
  <span class="method-name">to_ical</span><span class="method-args">()</span>
119
127
  </a>
120
128
  </div>
121
129
 
122
130
  <div class="method-description">
123
- <p><a class="source-toggle" href="#"
124
- onclick="toggleCode('M000002-source');return false;">[Source]</a></p>
125
- <div class="method-source-code" id="M000002-source">
126
- <pre>
127
- <span class="ruby-comment cmt"># File lib/icalendar/conversions.rb, line 40</span>
128
- 40: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">to_ical</span>
129
- 41: <span class="ruby-identifier">map</span>{<span class="ruby-operator">|</span><span class="ruby-identifier">elem</span><span class="ruby-operator">|</span> <span class="ruby-identifier">elem</span>.<span class="ruby-identifier">to_ical</span>}.<span class="ruby-identifier">join</span> <span class="ruby-value str">','</span>
130
- 42: <span class="ruby-keyword kw">end</span>
131
- </pre>
132
- </div>
133
131
  </div>
134
132
  </div>
135
133
 
@@ -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 (Array)</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 42</span>
14
+ <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">to_ical</span>
15
+ <span class="ruby-identifier">map</span>{<span class="ruby-operator">|</span><span class="ruby-identifier">elem</span><span class="ruby-operator">|</span> <span class="ruby-identifier">elem</span>.<span class="ruby-identifier">to_ical</span>}.<span class="ruby-identifier">join</span> <span class="ruby-value str">','</span>
16
+ <span class="ruby-keyword kw">end</span></pre>
17
+ </body>
18
+ </html>
@@ -114,33 +114,13 @@
114
114
  <a name="M000004"></a>
115
115
 
116
116
  <div class="method-heading">
117
- <a href="#M000004" class="method-signature">
117
+ <a href="Date.src/M000004.html" target="Code" class="method-signature"
118
+ onclick="popupCode('Date.src/M000004.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('M000004-source');return false;">[Source]</a></p>
125
- <div class="method-source-code" id="M000004-source">
126
- <pre>
127
- <span class="ruby-comment cmt"># File lib/icalendar/conversions.rb, line 92</span>
128
- 92: <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
- 93: <span class="ruby-identifier">s</span> = <span class="ruby-value str">&quot;&quot;</span>
130
- 94:
131
- 95: <span class="ruby-comment cmt"># 4 digit year</span>
132
- 96: <span class="ruby-identifier">s</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">year</span>.<span class="ruby-identifier">to_s</span>
133
- 97:
134
- 98: <span class="ruby-comment cmt"># Double digit month</span>
135
- 99: <span class="ruby-identifier">s</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-value str">&quot;0&quot;</span> <span class="ruby-keyword kw">unless</span> <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">month</span> <span class="ruby-operator">&gt;</span> <span class="ruby-value">9</span>
136
- 100: <span class="ruby-identifier">s</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">month</span>.<span class="ruby-identifier">to_s</span>
137
- 101:
138
- 102: <span class="ruby-comment cmt"># Double digit day</span>
139
- 103: <span class="ruby-identifier">s</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-value str">&quot;0&quot;</span> <span class="ruby-keyword kw">unless</span> <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">day</span> <span class="ruby-operator">&gt;</span> <span class="ruby-value">9</span>
140
- 104: <span class="ruby-identifier">s</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">day</span>.<span class="ruby-identifier">to_s</span>
141
- 105: <span class="ruby-keyword kw">end</span>
142
- </pre>
143
- </div>
144
124
  </div>
145
125
  </div>
146
126
 
@@ -0,0 +1,29 @@
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 (Date)</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 94</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">&quot;&quot;</span>
16
+
17
+ <span class="ruby-comment cmt"># 4 digit year</span>
18
+ <span class="ruby-identifier">s</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">year</span>.<span class="ruby-identifier">to_s</span>
19
+
20
+ <span class="ruby-comment cmt"># Double digit month</span>
21
+ <span class="ruby-identifier">s</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-value str">&quot;0&quot;</span> <span class="ruby-keyword kw">unless</span> <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">month</span> <span class="ruby-operator">&gt;</span> <span class="ruby-value">9</span>
22
+ <span class="ruby-identifier">s</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">month</span>.<span class="ruby-identifier">to_s</span>
23
+
24
+ <span class="ruby-comment cmt"># Double digit day</span>
25
+ <span class="ruby-identifier">s</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-value str">&quot;0&quot;</span> <span class="ruby-keyword kw">unless</span> <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">day</span> <span class="ruby-operator">&gt;</span> <span class="ruby-value">9</span>
26
+ <span class="ruby-identifier">s</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">day</span>.<span class="ruby-identifier">to_s</span>
27
+ <span class="ruby-keyword kw">end</span></pre>
28
+ </body>
29
+ </html>
@@ -114,54 +114,13 @@
114
114
  <a name="M000005"></a>
115
115
 
116
116
  <div class="method-heading">
117
- <a href="#M000005" class="method-signature">
117
+ <a href="DateTime.src/M000005.html" target="Code" class="method-signature"
118
+ onclick="popupCode('DateTime.src/M000005.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('M000005-source');return false;">[Source]</a></p>
125
- <div class="method-source-code" id="M000005-source">
126
- <pre>
127
- <span class="ruby-comment cmt"># File lib/icalendar/conversions.rb, line 54</span>
128
- 54: <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
- 55: <span class="ruby-identifier">s</span> = <span class="ruby-value str">&quot;&quot;</span>
130
- 56:
131
- 57: <span class="ruby-comment cmt"># 4 digit year</span>
132
- 58: <span class="ruby-identifier">s</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">year</span>.<span class="ruby-identifier">to_s</span>
133
- 59:
134
- 60: <span class="ruby-comment cmt"># Double digit month</span>
135
- 61: <span class="ruby-identifier">s</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-value str">&quot;0&quot;</span> <span class="ruby-keyword kw">unless</span> <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">month</span> <span class="ruby-operator">&gt;</span> <span class="ruby-value">9</span>
136
- 62: <span class="ruby-identifier">s</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">month</span>.<span class="ruby-identifier">to_s</span>
137
- 63:
138
- 64: <span class="ruby-comment cmt"># Double digit day</span>
139
- 65: <span class="ruby-identifier">s</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-value str">&quot;0&quot;</span> <span class="ruby-keyword kw">unless</span> <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">day</span> <span class="ruby-operator">&gt;</span> <span class="ruby-value">9</span>
140
- 66: <span class="ruby-identifier">s</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">day</span>.<span class="ruby-identifier">to_s</span>
141
- 67:
142
- 68: <span class="ruby-identifier">s</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-value str">&quot;T&quot;</span>
143
- 69:
144
- 70: <span class="ruby-comment cmt"># Double digit hour</span>
145
- 71: <span class="ruby-identifier">s</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-value str">&quot;0&quot;</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">&gt;</span> <span class="ruby-value">9</span>
146
- 72: <span class="ruby-identifier">s</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">hour</span>.<span class="ruby-identifier">to_s</span>
147
- 73:
148
- 74: <span class="ruby-comment cmt"># Double digit minute</span>
149
- 75: <span class="ruby-identifier">s</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-value str">&quot;0&quot;</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">&gt;</span> <span class="ruby-value">9</span>
150
- 76: <span class="ruby-identifier">s</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">min</span>.<span class="ruby-identifier">to_s</span>
151
- 77:
152
- 78: <span class="ruby-comment cmt"># Double digit second</span>
153
- 79: <span class="ruby-identifier">s</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-value str">&quot;0&quot;</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">&gt;</span> <span class="ruby-value">9</span>
154
- 80: <span class="ruby-identifier">s</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">sec</span>.<span class="ruby-identifier">to_s</span>
155
- 81:
156
- 82: <span class="ruby-comment cmt"># UTC time gets a Z suffix</span>
157
- 83: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">utc</span>
158
- 84: <span class="ruby-identifier">s</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-value str">&quot;Z&quot;</span>
159
- 85: <span class="ruby-keyword kw">end</span>
160
- 86:
161
- 87: <span class="ruby-identifier">s</span>
162
- 88: <span class="ruby-keyword kw">end</span>
163
- </pre>
164
- </div>
165
124
  </div>
166
125
  </div>
167
126
 
@@ -0,0 +1,50 @@
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 (DateTime)</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 56</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">&quot;&quot;</span>
16
+
17
+ <span class="ruby-comment cmt"># 4 digit year</span>
18
+ <span class="ruby-identifier">s</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">year</span>.<span class="ruby-identifier">to_s</span>
19
+
20
+ <span class="ruby-comment cmt"># Double digit month</span>
21
+ <span class="ruby-identifier">s</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-value str">&quot;0&quot;</span> <span class="ruby-keyword kw">unless</span> <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">month</span> <span class="ruby-operator">&gt;</span> <span class="ruby-value">9</span>
22
+ <span class="ruby-identifier">s</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">month</span>.<span class="ruby-identifier">to_s</span>
23
+
24
+ <span class="ruby-comment cmt"># Double digit day</span>
25
+ <span class="ruby-identifier">s</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-value str">&quot;0&quot;</span> <span class="ruby-keyword kw">unless</span> <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">day</span> <span class="ruby-operator">&gt;</span> <span class="ruby-value">9</span>
26
+ <span class="ruby-identifier">s</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">day</span>.<span class="ruby-identifier">to_s</span>
27
+
28
+ <span class="ruby-identifier">s</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-value str">&quot;T&quot;</span>
29
+
30
+ <span class="ruby-comment cmt"># Double digit hour</span>
31
+ <span class="ruby-identifier">s</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-value str">&quot;0&quot;</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">&gt;</span> <span class="ruby-value">9</span>
32
+ <span class="ruby-identifier">s</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">hour</span>.<span class="ruby-identifier">to_s</span>
33
+
34
+ <span class="ruby-comment cmt"># Double digit minute</span>
35
+ <span class="ruby-identifier">s</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-value str">&quot;0&quot;</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">&gt;</span> <span class="ruby-value">9</span>
36
+ <span class="ruby-identifier">s</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">min</span>.<span class="ruby-identifier">to_s</span>
37
+
38
+ <span class="ruby-comment cmt"># Double digit second</span>
39
+ <span class="ruby-identifier">s</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-value str">&quot;0&quot;</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">&gt;</span> <span class="ruby-value">9</span>
40
+ <span class="ruby-identifier">s</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">sec</span>.<span class="ruby-identifier">to_s</span>
41
+
42
+ <span class="ruby-comment cmt"># UTC time gets a Z suffix</span>
43
+ <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">utc</span>
44
+ <span class="ruby-identifier">s</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-value str">&quot;Z&quot;</span>
45
+ <span class="ruby-keyword kw">end</span>
46
+
47
+ <span class="ruby-identifier">s</span>
48
+ <span class="ruby-keyword kw">end</span></pre>
49
+ </body>
50
+ </html>