icalendar 1.1.1 → 1.1.2
Sign up to get free protection for your applications and to get access to all the features.
- data/History.txt +3 -0
- data/Manifest.txt +61 -0
- data/PostInstall.txt +5 -0
- data/{README → README.rdoc} +4 -0
- data/Rakefile +28 -133
- data/config/website.yml +2 -0
- data/icalendar.gemspec +55 -0
- data/lib/icalendar/base.rb +2 -0
- data/lib/icalendar/component.rb +9 -7
- data/script/console +10 -0
- data/script/destroy +14 -0
- data/script/generate +14 -0
- data/script/recur1.ics +38 -0
- data/script/tryit.rb +13 -0
- data/script/txt2html +71 -0
- data/test.ical +33 -0
- data/test.ics +33 -0
- data/test.rb +48 -0
- data/test/component/{event_test.rb → test_event.rb} +0 -0
- data/test/component/{timezone_test.rb → test_timezone.rb} +1 -1
- data/test/component/{todo_test.rb → test_todo.rb} +0 -0
- data/test/fixtures/folding.ics +7 -7
- data/test/{calendar_test.rb → test_calendar.rb} +1 -4
- data/test/{component_test.rb → test_component.rb} +0 -0
- data/test/{conversions_test.rb → test_conversions.rb} +8 -8
- data/test/test_helper.rb +3 -0
- data/test/{parameter_test.rb → test_parameter.rb} +4 -0
- data/test/{parser_test.rb → test_parser.rb} +0 -0
- data/test2.rb +28 -0
- data/website/index.html +11 -0
- data/website/index.txt +79 -0
- data/website/javascripts/rounded_corners_lite.inc.js +285 -0
- data/website/stylesheets/screen.css +159 -0
- data/website/template.html.erb +50 -0
- metadata +135 -135
- data/docs/api/classes/Array.html +0 -155
- data/docs/api/classes/Bignum.html +0 -148
- data/docs/api/classes/Date.html +0 -172
- data/docs/api/classes/DateTime.html +0 -200
- data/docs/api/classes/Fixnum.html +0 -148
- data/docs/api/classes/Float.html +0 -148
- data/docs/api/classes/HashAttrs.html +0 -212
- data/docs/api/classes/Icalendar/Alarm.html +0 -228
- data/docs/api/classes/Icalendar/Base.html +0 -179
- data/docs/api/classes/Icalendar/Calendar.html +0 -504
- data/docs/api/classes/Icalendar/Component.html +0 -853
- data/docs/api/classes/Icalendar/DateProp.html +0 -187
- data/docs/api/classes/Icalendar/DateProp/ClassMethods.html +0 -195
- data/docs/api/classes/Icalendar/Daylight.html +0 -156
- data/docs/api/classes/Icalendar/Event.html +0 -671
- data/docs/api/classes/Icalendar/Freebusy.html +0 -266
- data/docs/api/classes/Icalendar/Geo.html +0 -211
- data/docs/api/classes/Icalendar/InvalidPropertyValue.html +0 -117
- data/docs/api/classes/Icalendar/Journal.html +0 -443
- data/docs/api/classes/Icalendar/Parameter.html +0 -166
- data/docs/api/classes/Icalendar/Parser.html +0 -352
- data/docs/api/classes/Icalendar/RRule.html +0 -428
- data/docs/api/classes/Icalendar/RRule/Weekday.html +0 -199
- data/docs/api/classes/Icalendar/Standard.html +0 -156
- data/docs/api/classes/Icalendar/Timezone.html +0 -450
- data/docs/api/classes/Icalendar/Todo.html +0 -480
- data/docs/api/classes/Icalendar/TzidSupport.html +0 -118
- data/docs/api/classes/Icalendar/UnknownComponentClass.html +0 -117
- data/docs/api/classes/Icalendar/UnknownPropertyMethod.html +0 -117
- data/docs/api/classes/Object.html +0 -272
- data/docs/api/classes/String.html +0 -148
- data/docs/api/classes/TZInfo.html +0 -119
- data/docs/api/classes/TZInfo/Timezone.html +0 -153
- data/docs/api/classes/TZInfo/TimezonePeriod.html +0 -200
- data/docs/api/classes/TZInfo/TimezoneTransitionInfo.html +0 -229
- data/docs/api/classes/Time.html +0 -180
- data/docs/api/classes/URI.html +0 -111
- data/docs/api/classes/URI/Generic.html +0 -148
- data/docs/api/created.rid +0 -1
- data/docs/api/files/COPYING.html +0 -163
- data/docs/api/files/GPL.html +0 -531
- data/docs/api/files/README.html +0 -401
- data/docs/api/files/lib/hash_attrs_rb.html +0 -107
- data/docs/api/files/lib/icalendar/base_rb.html +0 -108
- data/docs/api/files/lib/icalendar/calendar_rb.html +0 -101
- data/docs/api/files/lib/icalendar/component/alarm_rb.html +0 -101
- data/docs/api/files/lib/icalendar/component/event_rb.html +0 -101
- data/docs/api/files/lib/icalendar/component/freebusy_rb.html +0 -101
- data/docs/api/files/lib/icalendar/component/journal_rb.html +0 -101
- data/docs/api/files/lib/icalendar/component/timezone_rb.html +0 -101
- data/docs/api/files/lib/icalendar/component/todo_rb.html +0 -101
- data/docs/api/files/lib/icalendar/component_rb.html +0 -108
- data/docs/api/files/lib/icalendar/conversions_rb.html +0 -109
- data/docs/api/files/lib/icalendar/helpers_rb.html +0 -101
- data/docs/api/files/lib/icalendar/parameter_rb.html +0 -101
- data/docs/api/files/lib/icalendar/parser_rb.html +0 -110
- data/docs/api/files/lib/icalendar/rrule_rb.html +0 -110
- data/docs/api/files/lib/icalendar/tzinfo_rb.html +0 -101
- data/docs/api/files/lib/icalendar_rb.html +0 -121
- data/docs/api/files/lib/meta_rb.html +0 -107
- data/docs/api/fr_class_index.html +0 -64
- data/docs/api/fr_file_index.html +0 -47
- data/docs/api/fr_method_index.html +0 -123
- data/docs/api/index.html +0 -24
- data/docs/api/rdoc-style.css +0 -208
- data/docs/rfcs/itip_notes.txt +0 -69
- data/docs/rfcs/rfc2425.pdf +0 -0
- data/docs/rfcs/rfc2426.pdf +0 -0
- data/docs/rfcs/rfc2445.pdf +0 -0
- data/docs/rfcs/rfc2446.pdf +0 -0
- data/docs/rfcs/rfc2447.pdf +0 -0
- data/docs/rfcs/rfc3283.txt +0 -738
- data/test/coverage/STUB +0 -0
- data/test/coverage/index.html +0 -272
- data/test/coverage/lib-hash_attrs_rb.html +0 -235
- data/test/coverage/lib-icalendar-base_rb.html +0 -249
- data/test/coverage/lib-icalendar-calendar_rb.html +0 -324
- data/test/coverage/lib-icalendar-component-alarm_rb.html +0 -250
- data/test/coverage/lib-icalendar-component-event_rb.html +0 -353
- data/test/coverage/lib-icalendar-component-freebusy_rb.html +0 -245
- data/test/coverage/lib-icalendar-component-journal_rb.html +0 -278
- data/test/coverage/lib-icalendar-component-timezone_rb.html +0 -326
- data/test/coverage/lib-icalendar-component-todo_rb.html +0 -277
- data/test/coverage/lib-icalendar-component_rb.html +0 -733
- data/test/coverage/lib-icalendar-conversions_rb.html +0 -358
- data/test/coverage/lib-icalendar-parser_rb.html +0 -671
- data/test/coverage/lib-icalendar-rrule_rb.html +0 -357
- data/test/coverage/lib-icalendar_rb.html +0 -243
- data/test/coverage/lib-meta_rb.html +0 -234
data/History.txt
ADDED
data/Manifest.txt
ADDED
@@ -0,0 +1,61 @@
|
|
1
|
+
COPYING
|
2
|
+
GPL
|
3
|
+
History.txt
|
4
|
+
Manifest.txt
|
5
|
+
PostInstall.txt
|
6
|
+
README.rdoc
|
7
|
+
Rakefile
|
8
|
+
config/website.yml
|
9
|
+
examples/create_cal.rb
|
10
|
+
examples/parse_cal.rb
|
11
|
+
examples/single_event.ics
|
12
|
+
icalendar.gemspec
|
13
|
+
lib/hash_attrs.rb
|
14
|
+
lib/icalendar.rb
|
15
|
+
lib/icalendar/base.rb
|
16
|
+
lib/icalendar/calendar.rb
|
17
|
+
lib/icalendar/component.rb
|
18
|
+
lib/icalendar/component/alarm.rb
|
19
|
+
lib/icalendar/component/event.rb
|
20
|
+
lib/icalendar/component/freebusy.rb
|
21
|
+
lib/icalendar/component/journal.rb
|
22
|
+
lib/icalendar/component/timezone.rb
|
23
|
+
lib/icalendar/component/todo.rb
|
24
|
+
lib/icalendar/conversions.rb
|
25
|
+
lib/icalendar/conversions.rb.orig
|
26
|
+
lib/icalendar/helpers.rb
|
27
|
+
lib/icalendar/parameter.rb
|
28
|
+
lib/icalendar/parser.rb
|
29
|
+
lib/icalendar/rrule.rb
|
30
|
+
lib/icalendar/tzinfo.rb
|
31
|
+
lib/meta.rb
|
32
|
+
script/console
|
33
|
+
script/destroy
|
34
|
+
script/generate
|
35
|
+
script/recur1.ics
|
36
|
+
script/tryit.rb
|
37
|
+
script/txt2html
|
38
|
+
test.ical
|
39
|
+
test.ics
|
40
|
+
test.rb
|
41
|
+
test/component/test_event.rb
|
42
|
+
test/component/test_timezone.rb
|
43
|
+
test/component/test_todo.rb
|
44
|
+
test/fixtures/folding.ics
|
45
|
+
test/fixtures/life.ics
|
46
|
+
test/fixtures/simplecal.ics
|
47
|
+
test/fixtures/single_event.ics
|
48
|
+
test/interactive.rb
|
49
|
+
test/read_write.rb
|
50
|
+
test/test_calendar.rb
|
51
|
+
test/test_component.rb
|
52
|
+
test/test_conversions.rb
|
53
|
+
test/test_helper.rb
|
54
|
+
test/test_parameter.rb
|
55
|
+
test/test_parser.rb
|
56
|
+
test2.rb
|
57
|
+
website/index.html
|
58
|
+
website/index.txt
|
59
|
+
website/javascripts/rounded_corners_lite.inc.js
|
60
|
+
website/stylesheets/screen.css
|
61
|
+
website/template.html.erb
|
data/PostInstall.txt
ADDED
data/{README → README.rdoc}
RENAMED
@@ -1,5 +1,9 @@
|
|
1
1
|
= iCalendar -- Internet calendaring, Ruby style
|
2
2
|
|
3
|
+
* http://github.com/sdague/icalendar
|
4
|
+
|
5
|
+
== DESCRIPTION
|
6
|
+
|
3
7
|
This is a Ruby library for dealing with iCalendar files. Rather than
|
4
8
|
explaining myself, here is the introduction from RFC-2445, which
|
5
9
|
defines the format:
|
data/Rakefile
CHANGED
@@ -1,133 +1,28 @@
|
|
1
|
-
require 'rubygems'
|
2
|
-
|
3
|
-
require '
|
4
|
-
require '
|
5
|
-
require '
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
# Add our created paths to the 'rake clobber' list
|
30
|
-
CLOBBER.include(rcov_test_output)
|
31
|
-
|
32
|
-
desc 'Removes all previous unit test coverage information'
|
33
|
-
task (:reset_unit_test_coverage) do |t|
|
34
|
-
rm_rf rcov_unit_test_output
|
35
|
-
mkdir rcov_unit_test_output
|
36
|
-
end
|
37
|
-
|
38
|
-
desc 'Run all unit tests with Rcov to measure coverage'
|
39
|
-
Rake::TestTask.new(:rcov) do |t|
|
40
|
-
t.libs << "test"
|
41
|
-
t.pattern = 'test/**/*_test.rb'
|
42
|
-
t.ruby_opts << rcov_path
|
43
|
-
t.ruby_opts << "-o #{rcov_test_output}"
|
44
|
-
t.ruby_opts << "-x #{rcov_exclude}"
|
45
|
-
t.verbose = true
|
46
|
-
end
|
47
|
-
|
48
|
-
# Generate the RDoc documentation
|
49
|
-
Rake::RDocTask.new(:doc) { |rdoc|
|
50
|
-
rdoc.main = 'README'
|
51
|
-
rdoc.rdoc_files.include('lib/**/*.rb', 'README')
|
52
|
-
rdoc.rdoc_files.include('GPL', 'COPYING')
|
53
|
-
rdoc.rdoc_dir = 'docs/api'
|
54
|
-
rdoc.title = "iCalendar -- Internet Calendaring for Ruby"
|
55
|
-
rdoc.options << "--include=examples --line-numbers --inline-source"
|
56
|
-
rdoc.options << "--accessor=ical_component,ical_property,ical_multi_property"
|
57
|
-
}
|
58
|
-
|
59
|
-
require 'rubygems'
|
60
|
-
require 'rubygems/gem_runner'
|
61
|
-
require 'rake/gempackagetask'
|
62
|
-
|
63
|
-
spec = Gem::Specification.new do |s|
|
64
|
-
s.name = "icalendar"
|
65
|
-
s.version = PKG_VERSION
|
66
|
-
s.homepage = "http://icalendar.rubyforge.org/"
|
67
|
-
s.platform = Gem::Platform::RUBY
|
68
|
-
s.summary = "A ruby implementation of the iCalendar specification (RFC-2445)."
|
69
|
-
s.description = "Implements the iCalendar specification (RFC-2445) in Ruby. This allows for the generation and parsing of .ics files, which are used by a variety of calendaring applications."
|
70
|
-
|
71
|
-
s.files = FileList["{test,lib,docs,examples}/**/*"].to_a
|
72
|
-
s.files += ["Rakefile", "README", "COPYING", "GPL" ]
|
73
|
-
s.require_path = "lib"
|
74
|
-
s.autorequire = "icalendar"
|
75
|
-
s.has_rdoc = true
|
76
|
-
s.extra_rdoc_files = ["README", "COPYING", "GPL"]
|
77
|
-
s.rdoc_options.concat ['--main', 'README']
|
78
|
-
|
79
|
-
s.author = "Sean Dague"
|
80
|
-
s.email = "sean@dague.net"
|
81
|
-
end
|
82
|
-
|
83
|
-
Rake::GemPackageTask.new(spec) do |pkg|
|
84
|
-
pkg.gem_spec = spec
|
85
|
-
pkg.need_tar = true
|
86
|
-
pkg.need_zip = true
|
87
|
-
end
|
88
|
-
|
89
|
-
desc "Upload Docs to RubyForge"
|
90
|
-
task :publish_docs => [:doc] do
|
91
|
-
publisher = Rake::SshDirPublisher.new(
|
92
|
-
"sdague@rubyforge.org",
|
93
|
-
"/var/www/gforge-projects/icalendar",
|
94
|
-
"docs/api"
|
95
|
-
)
|
96
|
-
publisher.upload
|
97
|
-
end
|
98
|
-
|
99
|
-
desc "Publish the release files to RubyForge."
|
100
|
-
task :release => [ :package, :publish_docs ] do
|
101
|
-
require 'rubyforge'
|
102
|
-
packages = %w( gem tgz zip ).collect{ |ext| "pkg/#{PKG_NAME}-#{PKG_VERSION}.#{ext}" }
|
103
|
-
rubyforge = RubyForge.new
|
104
|
-
rubyforge.configure
|
105
|
-
rubyforge.scrape_config
|
106
|
-
rubyforge.scrape_project(PKG_NAME)
|
107
|
-
rubyforge.add_release(540, PKG_NAME, "v#{PKG_VERSION}", *packages)
|
108
|
-
end
|
109
|
-
|
110
|
-
desc 'Install the gem globally (requires sudo)'
|
111
|
-
task :install => :package do |t|
|
112
|
-
`sudo gem install pkg/icalendar-#{PKG_VERSION}.gem`
|
113
|
-
end
|
114
|
-
|
115
|
-
task :lines do
|
116
|
-
lines = 0
|
117
|
-
codelines = 0
|
118
|
-
Dir.foreach("lib/icalendar") { |file_name|
|
119
|
-
next unless file_name =~ /.*rb/
|
120
|
-
|
121
|
-
f = File.open("lib/icalendar/" + file_name)
|
122
|
-
|
123
|
-
while line = f.gets
|
124
|
-
lines += 1
|
125
|
-
next if line =~ /^\s*$/
|
126
|
-
next if line =~ /^\s*#/
|
127
|
-
codelines += 1
|
128
|
-
end
|
129
|
-
}
|
130
|
-
puts "\n------------------------------\n"
|
131
|
-
puts "Total Lines: #{lines}"
|
132
|
-
puts "Lines of Code: #{codelines}"
|
133
|
-
end
|
1
|
+
require 'rubygems'
|
2
|
+
gem 'hoe', '>= 2.1.0'
|
3
|
+
require 'hoe'
|
4
|
+
require 'fileutils'
|
5
|
+
require './lib/icalendar'
|
6
|
+
|
7
|
+
ENV['VERSION'] = Icalendar::VERSION
|
8
|
+
|
9
|
+
Hoe.plugin :newgem
|
10
|
+
Hoe.plugin :website
|
11
|
+
# Hoe.plugin :cucumberfeatures
|
12
|
+
|
13
|
+
# Generate all the Rake tasks
|
14
|
+
# Run 'rake -T' to see list of generated tasks (from gem root directory)
|
15
|
+
$hoe = Hoe.spec 'icalendar' do
|
16
|
+
self.developer 'Sean Dague', 'sean@dague.net'
|
17
|
+
self.post_install_message = 'PostInstall.txt' # TODO remove if post-install message not required
|
18
|
+
self.rubyforge_name = self.name # TODO this is default value
|
19
|
+
# self.extra_deps = [['activesupport','>= 2.0.2']]
|
20
|
+
|
21
|
+
end
|
22
|
+
|
23
|
+
require 'newgem/tasks'
|
24
|
+
Dir['tasks/**/*.rake'].each { |t| load t }
|
25
|
+
|
26
|
+
# TODO - want other tests/tasks run by default? Add them to the list
|
27
|
+
# remove_task :default
|
28
|
+
# task :default => [:spec, :features]
|
data/config/website.yml
ADDED
data/icalendar.gemspec
ADDED
@@ -0,0 +1,55 @@
|
|
1
|
+
Gem::Specification.new do |s|
|
2
|
+
s.name = "icalendar"
|
3
|
+
s.version = "1.1.1"
|
4
|
+
s.homepage = "http://icalendar.rubyforge.org/"
|
5
|
+
s.platform = Gem::Platform::RUBY
|
6
|
+
s.summary = "A ruby implementation of the iCalendar specification (RFC-2445)."
|
7
|
+
s.description = "Implements the iCalendar specification (RFC-2445) in Ruby. This allows for the generation and parsing of .ics files, which are used by a variety of calendaring applications."
|
8
|
+
|
9
|
+
s.files = [
|
10
|
+
"test/calendar_test.rb", "test/parameter_test.rb",
|
11
|
+
"test/interactive.rb", "test/conversions_test.rb",
|
12
|
+
"test/component_test.rb", "test/parser_test.rb",
|
13
|
+
"test/read_write.rb", "test/fixtures",
|
14
|
+
"test/fixtures/single_event.ics",
|
15
|
+
"test/fixtures/folding.ics",
|
16
|
+
"test/fixtures/simplecal.ics",
|
17
|
+
"test/fixtures/life.ics", "test/component",
|
18
|
+
"test/component/timezone_test.rb",
|
19
|
+
"test/component/todo_test.rb",
|
20
|
+
"test/component/event_test.rb", "test/coverage",
|
21
|
+
"test/coverage/STUB", "lib/icalendar",
|
22
|
+
"lib/icalendar/parameter.rb",
|
23
|
+
"lib/icalendar/component.rb",
|
24
|
+
"lib/icalendar/base.rb", "lib/icalendar/parser.rb",
|
25
|
+
"lib/icalendar/calendar.rb",
|
26
|
+
"lib/icalendar/component",
|
27
|
+
"lib/icalendar/component/alarm.rb",
|
28
|
+
"lib/icalendar/component/todo.rb",
|
29
|
+
"lib/icalendar/component/event.rb",
|
30
|
+
"lib/icalendar/component/journal.rb",
|
31
|
+
"lib/icalendar/component/timezone.rb",
|
32
|
+
"lib/icalendar/component/freebusy.rb",
|
33
|
+
"lib/icalendar/conversions.rb",
|
34
|
+
"lib/icalendar/rrule.rb",
|
35
|
+
"lib/icalendar/tzinfo.rb",
|
36
|
+
"lib/icalendar/helpers.rb", "lib/meta.rb",
|
37
|
+
"lib/icalendar.rb", "lib/hash_attrs.rb", "docs/rfcs",
|
38
|
+
"docs/rfcs/rfc2446.pdf", "docs/rfcs/rfc2426.pdf",
|
39
|
+
"docs/rfcs/itip_notes.txt", "docs/rfcs/rfc2447.pdf",
|
40
|
+
"docs/rfcs/rfc2425.pdf", "docs/rfcs/rfc2445.pdf",
|
41
|
+
"docs/rfcs/rfc3283.txt", "docs/api", "docs/api/STUB",
|
42
|
+
"examples/single_event.ics", "examples/parse_cal.rb",
|
43
|
+
"examples/create_cal.rb"]
|
44
|
+
|
45
|
+
s.files += ["Rakefile", "README", "COPYING", "GPL" ]
|
46
|
+
s.require_path = "lib"
|
47
|
+
s.autorequire = "icalendar"
|
48
|
+
s.has_rdoc = true
|
49
|
+
s.extra_rdoc_files = ["README", "COPYING", "GPL"]
|
50
|
+
s.rdoc_options.concat ['--main', 'README']
|
51
|
+
|
52
|
+
s.author = "Sean Dague"
|
53
|
+
s.email = "sean@dague.net"
|
54
|
+
end
|
55
|
+
|
data/lib/icalendar/base.rb
CHANGED
data/lib/icalendar/component.rb
CHANGED
@@ -103,8 +103,8 @@ module Icalendar
|
|
103
103
|
def to_ical
|
104
104
|
print_component do
|
105
105
|
s = ""
|
106
|
-
@components.
|
107
|
-
comps.each { |component| s << component.to_ical }
|
106
|
+
@components.sort.each do |key, comps|
|
107
|
+
comps.sort.each { |component| s << component.to_ical }
|
108
108
|
end
|
109
109
|
s
|
110
110
|
end
|
@@ -129,7 +129,7 @@ module Icalendar
|
|
129
129
|
def print_properties
|
130
130
|
s = ""
|
131
131
|
|
132
|
-
@properties.each do |key,val|
|
132
|
+
@properties.sort.each do |key,val|
|
133
133
|
# Take out underscore for property names that conflicted
|
134
134
|
# with built-in words.
|
135
135
|
if key =~ /ip_.*/
|
@@ -145,13 +145,13 @@ module Icalendar
|
|
145
145
|
|
146
146
|
# Property value
|
147
147
|
value = ":#{val.to_ical}"
|
148
|
-
add_sliced_text(s,prelude+escape_chars(value))
|
148
|
+
add_sliced_text(s, prelude + escape_chars(value))
|
149
149
|
else
|
150
150
|
prelude = "#{key.gsub(/_/, '-').upcase}"
|
151
151
|
val.each do |v|
|
152
152
|
params = print_parameters(v)
|
153
153
|
value = ":#{v.to_ical}"
|
154
|
-
add_sliced_text(s,prelude + params + escape_chars(value))
|
154
|
+
add_sliced_text(s, prelude + params + escape_chars(value))
|
155
155
|
end
|
156
156
|
end
|
157
157
|
end
|
@@ -159,12 +159,14 @@ module Icalendar
|
|
159
159
|
end
|
160
160
|
|
161
161
|
def escape_chars(value)
|
162
|
-
value.gsub("\\", "\\\\").gsub("\n", "\\n").gsub(",", "\\,").gsub(";", "\\;")
|
162
|
+
v = value.gsub("\\", "\\\\").gsub("\n", "\\n").gsub(",", "\\,").gsub(";", "\\;")
|
163
|
+
return v
|
164
|
+
# return value
|
163
165
|
end
|
164
166
|
|
165
167
|
def add_sliced_text(add_to,escaped)
|
166
168
|
escaped = escaped.split('') # split is unicdoe-aware when `$KCODE = 'u'`
|
167
|
-
add_to << escaped.slice!(0,MAX_LINE_LENGTH).
|
169
|
+
add_to << escaped.slice!(0,MAX_LINE_LENGTH).join << "\r\n " while escaped.length != 0 # shift(MAX_LINE_LENGTH) does not work with ruby 1.8.6
|
168
170
|
add_to.gsub!(/ *$/, '')
|
169
171
|
end
|
170
172
|
|
data/script/console
ADDED
@@ -0,0 +1,10 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
# File: script/console
|
3
|
+
irb = RUBY_PLATFORM =~ /(:?mswin|mingw)/ ? 'irb.bat' : 'irb'
|
4
|
+
|
5
|
+
libs = " -r irb/completion"
|
6
|
+
# Perhaps use a console_lib to store any extra methods I may want available in the cosole
|
7
|
+
# libs << " -r #{File.dirname(__FILE__) + '/../lib/console_lib/console_logger.rb'}"
|
8
|
+
libs << " -r #{File.dirname(__FILE__) + '/../lib/icalendar.rb'}"
|
9
|
+
puts "Loading icalendar gem"
|
10
|
+
exec "#{irb} #{libs} --simple-prompt"
|
data/script/destroy
ADDED
@@ -0,0 +1,14 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
APP_ROOT = File.expand_path(File.join(File.dirname(__FILE__), '..'))
|
3
|
+
|
4
|
+
begin
|
5
|
+
require 'rubigen'
|
6
|
+
rescue LoadError
|
7
|
+
require 'rubygems'
|
8
|
+
require 'rubigen'
|
9
|
+
end
|
10
|
+
require 'rubigen/scripts/destroy'
|
11
|
+
|
12
|
+
ARGV.shift if ['--help', '-h'].include?(ARGV[0])
|
13
|
+
RubiGen::Base.use_component_sources! [:rubygems, :newgem, :newgem_theme, :test_unit]
|
14
|
+
RubiGen::Scripts::Destroy.new.run(ARGV)
|
data/script/generate
ADDED
@@ -0,0 +1,14 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
APP_ROOT = File.expand_path(File.join(File.dirname(__FILE__), '..'))
|
3
|
+
|
4
|
+
begin
|
5
|
+
require 'rubigen'
|
6
|
+
rescue LoadError
|
7
|
+
require 'rubygems'
|
8
|
+
require 'rubigen'
|
9
|
+
end
|
10
|
+
require 'rubigen/scripts/generate'
|
11
|
+
|
12
|
+
ARGV.shift if ['--help', '-h'].include?(ARGV[0])
|
13
|
+
RubiGen::Base.use_component_sources! [:rubygems, :newgem, :newgem_theme, :test_unit]
|
14
|
+
RubiGen::Scripts::Generate.new.run(ARGV)
|
data/script/recur1.ics
ADDED
@@ -0,0 +1,38 @@
|
|
1
|
+
BEGIN:VCALENDAR
|
2
|
+
METHOD:PUBLISH
|
3
|
+
X-WR-TIMEZONE:US/Eastern
|
4
|
+
PRODID:-//Apple Inc.//iCal 3.0//EN
|
5
|
+
CALSCALE:GREGORIAN
|
6
|
+
X-WR-CALNAME:recur1
|
7
|
+
VERSION:2.0
|
8
|
+
X-WR-RELCALID:9122B9C1-EE7E-479C-9567-DB9F075F1844
|
9
|
+
X-APPLE-CALENDAR-COLOR:#492BA1
|
10
|
+
BEGIN:VTIMEZONE
|
11
|
+
TZID:US/Eastern
|
12
|
+
BEGIN:DAYLIGHT
|
13
|
+
TZOFFSETFROM:-0500
|
14
|
+
TZOFFSETTO:-0400
|
15
|
+
DTSTART:20070311T020000
|
16
|
+
RRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=2SU
|
17
|
+
TZNAME:EDT
|
18
|
+
END:DAYLIGHT
|
19
|
+
BEGIN:STANDARD
|
20
|
+
TZOFFSETFROM:-0400
|
21
|
+
TZOFFSETTO:-0500
|
22
|
+
DTSTART:20071104T020000
|
23
|
+
RRULE:FREQ=YEARLY;BYMONTH=11;BYDAY=1SU
|
24
|
+
TZNAME:EST
|
25
|
+
END:STANDARD
|
26
|
+
END:VTIMEZONE
|
27
|
+
BEGIN:VEVENT
|
28
|
+
SEQUENCE:8
|
29
|
+
TRANSP:OPAQUE
|
30
|
+
UID:59B21F50-301E-457D-B57E-78EDE83987E0
|
31
|
+
DTSTART;TZID=US/Eastern:20080908T100000
|
32
|
+
DTSTAMP:20081016T174123Z
|
33
|
+
SUMMARY:Recurring Event
|
34
|
+
CREATED:20081016T174021Z
|
35
|
+
DTEND;TZID=US/Eastern:20080908T110000
|
36
|
+
RRULE:FREQ=DAILY;INTERVAL=2;UNTIL=20080915T035959Z
|
37
|
+
END:VEVENT
|
38
|
+
END:VCALENDAR
|