vpim 0.16 → 0.17
Sign up to get free protection for your applications and to get access to all the features.
- data/lib/vpim/agent/plist.rb +86 -0
- data/lib/vpim/date.rb +1 -3
- data/lib/vpim/date.rb~ +198 -0
- data/lib/vpim/dirinfo.rb +47 -15
- data/lib/vpim/dirinfo.rb~ +242 -0
- data/lib/vpim/duration.rb +1 -3
- data/lib/vpim/duration.rb~ +121 -0
- data/lib/vpim/enumerator.rb +1 -3
- data/lib/vpim/enumerator.rb~ +29 -0
- data/lib/vpim/field.rb +141 -56
- data/lib/vpim/field.rb~ +594 -0
- data/lib/vpim/icalendar.rb +10 -16
- data/lib/vpim/icalendar.rb~ +548 -0
- data/lib/vpim/maker/vcard.rb +124 -46
- data/lib/vpim/maker/vcard.rb~ +382 -0
- data/lib/vpim/rfc2425.rb +30 -17
- data/lib/vpim/rfc2425.rb~ +246 -0
- data/lib/vpim/rrule.rb +2 -4
- data/lib/vpim/rrule.rb~ +482 -0
- data/lib/vpim/time.rb +1 -3
- data/lib/vpim/time.rb~ +42 -0
- data/lib/vpim/vcard.rb +84 -18
- data/lib/vpim/vcard.rb~ +232 -0
- data/lib/vpim/vevent.rb +1 -3
- data/lib/vpim/vevent.rb~ +381 -0
- data/lib/vpim/vpim.rb +61 -29
- data/lib/vpim/vpim.rb~ +61 -29
- metadata +16 -2
data/lib/vpim/vpim.rb
CHANGED
@@ -1,7 +1,5 @@
|
|
1
1
|
=begin
|
2
|
-
|
3
|
-
|
4
|
-
Copyright (C) 2005 Sam Roberts
|
2
|
+
Copyright (C) 2006 Sam Roberts
|
5
3
|
|
6
4
|
This library is free software; you can redistribute it and/or modify it
|
7
5
|
under the same terms as the ruby language itself, see the file COPYING for
|
@@ -14,31 +12,28 @@
|
|
14
12
|
# Author:: Sam Roberts <sroberts@uniserve.com>
|
15
13
|
# Copyright:: Copyright (C) 2006 Sam Roberts
|
16
14
|
# License:: May be distributed under the same terms as Ruby
|
17
|
-
# Version:: 0.
|
15
|
+
# Version:: 0.17
|
18
16
|
# Homepage:: http://vpim.rubyforge.org
|
19
17
|
#
|
20
|
-
#
|
21
|
-
#
|
22
|
-
# by the DirectoryInfo class.
|
23
|
-
#
|
24
|
-
# Currently the only IETF-defined profile is vCard (RFC 2426), implemented by
|
25
|
-
# the Vcard class.
|
26
|
-
#
|
27
|
-
# iCalendar (RFC 2445) was not specified as a profile of RFC 2425, could have
|
28
|
-
# been, and is implemented by the Icalendar class.
|
18
|
+
# vCard (RFC 2426) is a format for personal information, see Vpim::Vcard and
|
19
|
+
# Vpim::Maker::Vcard.
|
29
20
|
#
|
30
|
-
#
|
31
|
-
#
|
21
|
+
# iCalendar (RFC 2445) is a format for calendar related information, see
|
22
|
+
# Vpim::Icalendar.
|
32
23
|
#
|
33
|
-
#
|
34
|
-
#
|
35
|
-
#
|
36
|
-
# doesn't have to be complete, I would just like to see how the APIs are
|
37
|
-
# being called, to give me ideas for how to improve them.
|
24
|
+
# iCalendar was called vCalendar pre-IETF standaradization, and since both of
|
25
|
+
# these "v-formats" are commonly used personal information management, the
|
26
|
+
# library is called "vpim".
|
38
27
|
#
|
39
|
-
#
|
28
|
+
# vCard and iCalendar support is built on top of an implementation of the MIME
|
29
|
+
# Content-Type for Directory Information (RFC 2425). The basic RFC 2425 format
|
30
|
+
# is implemented by Vpim::DirectoryInfo and Vpim::DirectoryInfo::Field.
|
40
31
|
#
|
41
|
-
#
|
32
|
+
# The libary is mature to the point of useability, but there is always more
|
33
|
+
# that could be done. I have a very long todo list, so if you think something
|
34
|
+
# is missing, or have API suggestions, please contact me. I can't promise
|
35
|
+
# instantaneous turnaround, but I might be able to suggest another approach,
|
36
|
+
# and features requested by users of vPim are high priority for me.
|
42
37
|
#
|
43
38
|
# = Project Information
|
44
39
|
#
|
@@ -46,8 +41,8 @@
|
|
46
41
|
#
|
47
42
|
# - http://rubyforge.org/projects/vpim
|
48
43
|
#
|
49
|
-
#
|
50
|
-
#
|
44
|
+
# For notifications about new releases, or asking questions about vPim, please
|
45
|
+
# subscribe to "vpim-talk":
|
51
46
|
#
|
52
47
|
# - http://rubyforge.org/mailman/listinfo/vpim-talk
|
53
48
|
#
|
@@ -56,16 +51,18 @@
|
|
56
51
|
# Sample utilities are provided as examples of using vPim in samples/.
|
57
52
|
#
|
58
53
|
# vCard examples are:
|
59
|
-
# - link:ex_mkvcard.txt:
|
54
|
+
# - link:ex_mkvcard.txt: example of creating a vCard
|
55
|
+
# - link:ex_cpvcard.txt: example of copying and them modifying a vCard
|
56
|
+
# - link:ex_mkv21vcard.txt: example of creating version 2.1 vCard
|
60
57
|
# - link:mutt-aliases-to-vcf.txt: convert a mutt aliases file to vCards
|
61
58
|
# - link:ex_get_vcard_photo.txt: pull photo data from a vCard
|
62
59
|
# - link:ab-query.txt: query the OS X Address Book to find vCards
|
63
60
|
# - link:vcf-to-mutt.txt: query vCards for matches, output in formats useful
|
64
61
|
# with Mutt (see link:README.mutt for details)
|
65
|
-
# - link:vcard-dump.txt: dump all the fields in a vCard
|
66
62
|
# - link:tabbed-file-to-vcf.txt: convert a tab-delimited file to vCards, a
|
67
63
|
# (small but) complete application contributed by Dane G. Avilla, thanks!
|
68
|
-
# - link:vcf-to-ics.txt: example of how to create calendars of birthdays from
|
64
|
+
# - link:vcf-to-ics.txt: example of how to create calendars of birthdays from vCards
|
65
|
+
# - link:vcf-dump.txt: utility for dumping contents of .vcf files
|
69
66
|
#
|
70
67
|
# iCalendar examples are:
|
71
68
|
# - link:ics-to-rss.txt: prints todos as RSS, or starts a WEBrick servlet
|
@@ -78,9 +75,9 @@
|
|
78
75
|
# - link:reminder.txt: prints upcoming events and todos, by default from
|
79
76
|
# Apple's iCal calendars
|
80
77
|
# - link:rrule.txt: utility for printing recurrence rules
|
81
|
-
# - link:
|
78
|
+
# - link:ics-dump.txt: utility for dumping contents of .ics files
|
82
79
|
module Vpim
|
83
|
-
VERSION = "0.
|
80
|
+
VERSION = "0.17"
|
84
81
|
|
85
82
|
# Return the API version as a string.
|
86
83
|
def Vpim.version
|
@@ -94,3 +91,38 @@ module Vpim
|
|
94
91
|
class InvalidEncodingError < StandardError; end
|
95
92
|
end
|
96
93
|
|
94
|
+
module Vpim::Methods
|
95
|
+
module_function
|
96
|
+
|
97
|
+
# Case-insensitive comparison of +str0+ to +str1+, returns true or false.
|
98
|
+
# Either argument can be nil, where nil compares not equal to anything other
|
99
|
+
# than nil.
|
100
|
+
#
|
101
|
+
# This is available both as a module function:
|
102
|
+
# Vpim::Methods.casecmp?("yes", "YES")
|
103
|
+
# and an instance method:
|
104
|
+
# include Vpim::Methods
|
105
|
+
# casecmp?("yes", "YES")
|
106
|
+
#
|
107
|
+
# Will work with ruby1.6 and ruby 1.8.
|
108
|
+
#
|
109
|
+
# TODO - could make this be more efficient, but I'm supporting 1.6, not
|
110
|
+
# optimizing for it.
|
111
|
+
def casecmp?(str0, str1)
|
112
|
+
if str0 == nil
|
113
|
+
if str1 == nil
|
114
|
+
return true
|
115
|
+
else
|
116
|
+
return fasle
|
117
|
+
end
|
118
|
+
end
|
119
|
+
|
120
|
+
begin
|
121
|
+
str0.casecmp(str1) == 0
|
122
|
+
rescue NoMethodError
|
123
|
+
str0.downcase == str1.downcase
|
124
|
+
end
|
125
|
+
end
|
126
|
+
|
127
|
+
end
|
128
|
+
|
data/lib/vpim/vpim.rb~
CHANGED
@@ -1,7 +1,5 @@
|
|
1
1
|
=begin
|
2
|
-
|
3
|
-
|
4
|
-
Copyright (C) 2005 Sam Roberts
|
2
|
+
Copyright (C) 2006 Sam Roberts
|
5
3
|
|
6
4
|
This library is free software; you can redistribute it and/or modify it
|
7
5
|
under the same terms as the ruby language itself, see the file COPYING for
|
@@ -14,31 +12,28 @@
|
|
14
12
|
# Author:: Sam Roberts <sroberts@uniserve.com>
|
15
13
|
# Copyright:: Copyright (C) 2006 Sam Roberts
|
16
14
|
# License:: May be distributed under the same terms as Ruby
|
17
|
-
# Version:: 0.
|
15
|
+
# Version:: 0.17
|
18
16
|
# Homepage:: http://vpim.rubyforge.org
|
19
17
|
#
|
20
|
-
#
|
21
|
-
#
|
22
|
-
# by the DirectoryInfo class.
|
23
|
-
#
|
24
|
-
# Currently the only IETF-defined profile is vCard (RFC 2426), implemented by
|
25
|
-
# the Vcard class.
|
26
|
-
#
|
27
|
-
# iCalendar (RFC 2445) was not specified as a profile of RFC 2425, could have
|
28
|
-
# been, and is implemented by the Icalendar class.
|
18
|
+
# vCard (RFC 2426) is a format for personal information, see Vpim::Vcard and
|
19
|
+
# Vpim::Maker::Vcard.
|
29
20
|
#
|
30
|
-
#
|
31
|
-
#
|
21
|
+
# iCalendar (RFC 2445) is a format for calendar related information, see
|
22
|
+
# Vpim::Icalendar.
|
32
23
|
#
|
33
|
-
#
|
34
|
-
#
|
35
|
-
#
|
36
|
-
# doesn't have to be complete, I would just like to see how the APIs are
|
37
|
-
# being called, to give me ideas for how to improve them.
|
24
|
+
# iCalendar was called vCalendar pre-IETF standaradization, and since both of
|
25
|
+
# these "v-formats" are commonly used personal information management, the
|
26
|
+
# library is called "vpim".
|
38
27
|
#
|
39
|
-
#
|
28
|
+
# vCard and iCalendar support is built on top of an implementation of the MIME
|
29
|
+
# Content-Type for Directory Information (RFC 2425). The basic RFC 2425 format
|
30
|
+
# is implemented by Vpim::DirectoryInfo and Vpim::DirectoryInfo::Field.
|
40
31
|
#
|
41
|
-
#
|
32
|
+
# The libary is mature to the point of useability, but there is always more
|
33
|
+
# that could be done. I have a very long todo list, so if you think something
|
34
|
+
# is missing, or have API suggestions, please contact me. I can't promise
|
35
|
+
# instantaneous turnaround, but I might be able to suggest another approach,
|
36
|
+
# and features requested by users of vPim are high priority for me.
|
42
37
|
#
|
43
38
|
# = Project Information
|
44
39
|
#
|
@@ -46,8 +41,8 @@
|
|
46
41
|
#
|
47
42
|
# - http://rubyforge.org/projects/vpim
|
48
43
|
#
|
49
|
-
#
|
50
|
-
#
|
44
|
+
# For notifications about new releases, or asking questions about vPim, please
|
45
|
+
# subscribe to "vpim-talk":
|
51
46
|
#
|
52
47
|
# - http://rubyforge.org/mailman/listinfo/vpim-talk
|
53
48
|
#
|
@@ -56,16 +51,18 @@
|
|
56
51
|
# Sample utilities are provided as examples of using vPim in samples/.
|
57
52
|
#
|
58
53
|
# vCard examples are:
|
59
|
-
# - link:ex_mkvcard.txt:
|
54
|
+
# - link:ex_mkvcard.txt: example of creating a vCard
|
55
|
+
# - link:ex_cpvcard.txt: example of copying and them modifying a vCard
|
56
|
+
# - link:ex_mkv21vcard.txt: example of creating version 2.1 vCard
|
60
57
|
# - link:mutt-aliases-to-vcf.txt: convert a mutt aliases file to vCards
|
61
58
|
# - link:ex_get_vcard_photo.txt: pull photo data from a vCard
|
62
59
|
# - link:ab-query.txt: query the OS X Address Book to find vCards
|
63
60
|
# - link:vcf-to-mutt.txt: query vCards for matches, output in formats useful
|
64
61
|
# with Mutt (see link:README.mutt for details)
|
65
|
-
# - link:vcard-dump.txt: dump all the fields in a vCard
|
66
62
|
# - link:tabbed-file-to-vcf.txt: convert a tab-delimited file to vCards, a
|
67
63
|
# (small but) complete application contributed by Dane G. Avilla, thanks!
|
68
|
-
# - link:vcf-to-ics.txt: example of how to create calendars of birthdays from
|
64
|
+
# - link:vcf-to-ics.txt: example of how to create calendars of birthdays from vCards
|
65
|
+
# - link:vcf-dump.txt: utility for dumping contents of .vcf files
|
69
66
|
#
|
70
67
|
# iCalendar examples are:
|
71
68
|
# - link:ics-to-rss.txt: prints todos as RSS, or starts a WEBrick servlet
|
@@ -78,9 +75,9 @@
|
|
78
75
|
# - link:reminder.txt: prints upcoming events and todos, by default from
|
79
76
|
# Apple's iCal calendars
|
80
77
|
# - link:rrule.txt: utility for printing recurrence rules
|
81
|
-
# - link:
|
78
|
+
# - link:ics-dump.txt: utility for dumping contents of .ics files
|
82
79
|
module Vpim
|
83
|
-
VERSION = "0.
|
80
|
+
VERSION = "0.17"
|
84
81
|
|
85
82
|
# Return the API version as a string.
|
86
83
|
def Vpim.version
|
@@ -94,3 +91,38 @@ module Vpim
|
|
94
91
|
class InvalidEncodingError < StandardError; end
|
95
92
|
end
|
96
93
|
|
94
|
+
module Vpim::Methods
|
95
|
+
module_function
|
96
|
+
|
97
|
+
# Case-insensitive comparison of +str0+ to +str1+, returns true or false.
|
98
|
+
# Either argument can be nil, where nil compares not equal to anything other
|
99
|
+
# than nil.
|
100
|
+
#
|
101
|
+
# This is available both as a module function:
|
102
|
+
# Vpim::Methods.casecmp?("yes", "YES")
|
103
|
+
# and an instance method:
|
104
|
+
# include Vpim::Methods
|
105
|
+
# casecmp?("yes", "YES")
|
106
|
+
#
|
107
|
+
# Will work with ruby1.6 and ruby 1.8.
|
108
|
+
#
|
109
|
+
# TODO - could make this be more efficient, but I'm supporting 1.6, not
|
110
|
+
# optimizing for it.
|
111
|
+
def casecmp?(str0, str1)
|
112
|
+
if str0 == nil
|
113
|
+
if str1 == nil
|
114
|
+
return true
|
115
|
+
else
|
116
|
+
return fasle
|
117
|
+
end
|
118
|
+
end
|
119
|
+
|
120
|
+
begin
|
121
|
+
str0.casecmp(str1) == 0
|
122
|
+
rescue NoMethodError
|
123
|
+
str0.downcase == str1.downcase
|
124
|
+
end
|
125
|
+
end
|
126
|
+
|
127
|
+
end
|
128
|
+
|
metadata
CHANGED
@@ -3,8 +3,8 @@ rubygems_version: 0.8.11
|
|
3
3
|
specification_version: 1
|
4
4
|
name: vpim
|
5
5
|
version: !ruby/object:Gem::Version
|
6
|
-
version: "0.
|
7
|
-
date: 2006-
|
6
|
+
version: "0.17"
|
7
|
+
date: 2006-03-08 00:00:00 -08:00
|
8
8
|
summary: a library to manipulate vCards and iCalendars
|
9
9
|
require_paths:
|
10
10
|
- lib
|
@@ -29,21 +29,35 @@ authors:
|
|
29
29
|
- Sam Roberts
|
30
30
|
files:
|
31
31
|
- lib/vpim
|
32
|
+
- lib/vpim/agent
|
32
33
|
- lib/vpim/date.rb
|
34
|
+
- lib/vpim/date.rb~
|
33
35
|
- lib/vpim/dirinfo.rb
|
36
|
+
- lib/vpim/dirinfo.rb~
|
34
37
|
- lib/vpim/duration.rb
|
38
|
+
- lib/vpim/duration.rb~
|
35
39
|
- lib/vpim/enumerator.rb
|
40
|
+
- lib/vpim/enumerator.rb~
|
36
41
|
- lib/vpim/field.rb
|
42
|
+
- lib/vpim/field.rb~
|
37
43
|
- lib/vpim/icalendar.rb
|
44
|
+
- lib/vpim/icalendar.rb~
|
38
45
|
- lib/vpim/maker
|
39
46
|
- lib/vpim/rfc2425.rb
|
47
|
+
- lib/vpim/rfc2425.rb~
|
40
48
|
- lib/vpim/rrule.rb
|
49
|
+
- lib/vpim/rrule.rb~
|
41
50
|
- lib/vpim/time.rb
|
51
|
+
- lib/vpim/time.rb~
|
42
52
|
- lib/vpim/vcard.rb
|
53
|
+
- lib/vpim/vcard.rb~
|
43
54
|
- lib/vpim/vevent.rb
|
55
|
+
- lib/vpim/vevent.rb~
|
44
56
|
- lib/vpim/vpim.rb
|
45
57
|
- lib/vpim/vpim.rb~
|
58
|
+
- lib/vpim/agent/plist.rb
|
46
59
|
- lib/vpim/maker/vcard.rb
|
60
|
+
- lib/vpim/maker/vcard.rb~
|
47
61
|
test_files: []
|
48
62
|
|
49
63
|
rdoc_options: []
|