ri_cal 0.8.5 → 0.8.6
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.
- data/History.txt +7 -0
- data/Rakefile +59 -46
- data/VERSION +1 -0
- data/component_attributes/component_property_defs.yml +3 -3
- data/lib/ri_cal/component/t_z_info_timezone.rb +17 -3
- data/lib/ri_cal/core_extensions/date/conversions.rb +0 -14
- data/lib/ri_cal/core_extensions/date_time/conversions.rb +0 -6
- data/lib/ri_cal/fast_date_time.rb +8 -0
- data/lib/ri_cal/properties/alarm.rb +8 -8
- data/lib/ri_cal/properties/calendar.rb +3 -3
- data/lib/ri_cal/properties/event.rb +62 -65
- data/lib/ri_cal/properties/freebusy.rb +19 -20
- data/lib/ri_cal/properties/journal.rb +50 -53
- data/lib/ri_cal/properties/timezone.rb +10 -11
- data/lib/ri_cal/properties/timezone_period.rb +10 -10
- data/lib/ri_cal/properties/todo.rb +68 -71
- data/lib/ri_cal/property_value.rb +1 -0
- data/lib/ri_cal/property_value/date.rb +4 -0
- data/lib/ri_cal/property_value/date_time.rb +8 -0
- data/lib/ri_cal/property_value/recurrence_rule/occurrence_incrementer.rb +4 -3
- data/lib/ri_cal/property_value/recurrence_rule/occurrence_incrementer/by_day_incrementer.rb +5 -1
- data/lib/ri_cal/property_value/recurrence_rule/occurrence_incrementer/by_monthday_incrementer.rb +1 -1
- data/lib/ri_cal/property_value/recurrence_rule/occurrence_incrementer/by_numbered_day_incrementer.rb +5 -1
- data/lib/ri_cal/property_value/recurrence_rule/occurrence_incrementer/by_weekno_incrementer.rb +5 -1
- data/lib/ri_cal/property_value/recurrence_rule/occurrence_incrementer/frequency_incrementer.rb +9 -0
- data/lib/ri_cal/property_value/recurrence_rule/occurrence_incrementer/list_incrementer.rb +11 -1
- data/lib/ri_cal/property_value/recurrence_rule/occurrence_incrementer/null_sub_cycle_incrementer.rb +4 -0
- data/lib/ri_cal/property_value/recurrence_rule/recurring_month_day.rb +5 -1
- data/lib/ri_cal/property_value/recurrence_rule/recurring_year_day.rb +5 -1
- data/lib/ri_cal/property_value/zulu_date_time.rb +34 -0
- data/parked_specs/ri_cal/claudio_a_bug_spec.rb +100 -0
- data/ri_cal.gemspec +218 -21
- data/spec/ri_cal/component/event_spec.rb +17 -0
- data/spec/ri_cal/component/t_z_info_timezone_spec.rb +5 -4
- data/spec/ri_cal/fast_date_time_spec.rb +10 -0
- data/spec/ri_cal/inf_loop_spec.rb +78 -0
- data/spec/ri_cal/parser_spec.rb +3 -3
- metadata +61 -60
@@ -18,15 +18,16 @@ describe RiCal::Component::TZInfoTimezone do
|
|
18
18
|
BEGIN:VTIMEZONE
|
19
19
|
TZID;X-RICAL-TZSOURCE=TZINFO:America/New_York
|
20
20
|
BEGIN:DAYLIGHT
|
21
|
-
DTSTART:
|
22
|
-
RDATE:
|
21
|
+
DTSTART:20070311T020000
|
22
|
+
RDATE:20070311T020000
|
23
|
+
RDATE:20080309T020000
|
23
24
|
TZOFFSETFROM:-0500
|
24
25
|
TZOFFSETTO:-0400
|
25
26
|
TZNAME:EDT
|
26
27
|
END:DAYLIGHT
|
27
28
|
BEGIN:STANDARD
|
28
|
-
DTSTART:
|
29
|
-
RDATE:
|
29
|
+
DTSTART:20071104T020000
|
30
|
+
RDATE:20071104T020000
|
30
31
|
TZOFFSETFROM:-0400
|
31
32
|
TZOFFSETTO:-0500
|
32
33
|
TZNAME:EST
|
@@ -5,6 +5,16 @@ require File.join(File.dirname(__FILE__), %w[.. spec_helper])
|
|
5
5
|
module RiCal
|
6
6
|
|
7
7
|
describe RiCal::FastDateTime do
|
8
|
+
context "#utc" do
|
9
|
+
it "should not change if it is already UTC" do
|
10
|
+
FastDateTime.new(2009, 5, 29, 19, 3, 0, 0).utc.should == FastDateTime.new(2009, 5, 29, 19, 3, 0, 0)
|
11
|
+
end
|
12
|
+
|
13
|
+
it "should change the time by the offset" do
|
14
|
+
FastDateTime.new(2010, 4, 15, 16, 3, 0, -4*60*60).utc.should == FastDateTime.new(2010, 4, 15, 20, 3, 0, 0)
|
15
|
+
end
|
16
|
+
end
|
17
|
+
|
8
18
|
context "#==" do
|
9
19
|
it "should detect equal FastDateTimes" do
|
10
20
|
FastDateTime.new(2009, 5, 29, 19, 3, 0, 0).should ==
|
@@ -0,0 +1,78 @@
|
|
1
|
+
#- ©2009 Rick DeNatale, All rights reserved. Refer to the file README.txt for the license
|
2
|
+
|
3
|
+
require 'rubygems'
|
4
|
+
require File.join(File.dirname(__FILE__), %w[.. spec_helper])
|
5
|
+
|
6
|
+
describe "an event with unneeded by parts" do
|
7
|
+
before(:each) do
|
8
|
+
rawdata = <<END_STR
|
9
|
+
BEGIN:VCALENDAR
|
10
|
+
PRODID:-//Google Inc//Google Calendar 70.9054//EN
|
11
|
+
VERSION:2.0
|
12
|
+
CALSCALE:GREGORIAN
|
13
|
+
METHOD:PUBLISH
|
14
|
+
X-WR-CALNAME:RICal teste
|
15
|
+
X-WR-TIMEZONE:America/Sao_Paulo
|
16
|
+
X-WR-CALDESC:
|
17
|
+
BEGIN:VTIMEZONE
|
18
|
+
TZID:America/Sao_Paulo
|
19
|
+
X-LIC-LOCATION:America/Sao_Paulo
|
20
|
+
BEGIN:DAYLIGHT
|
21
|
+
TZOFFSETFROM:-0300
|
22
|
+
TZOFFSETTO:-0200
|
23
|
+
TZNAME:BRST
|
24
|
+
DTSTART:19701018T000000
|
25
|
+
RRULE:FREQ=YEARLY;BYMONTH=10;BYDAY=3SU
|
26
|
+
END:DAYLIGHT
|
27
|
+
BEGIN:STANDARD
|
28
|
+
TZOFFSETFROM:-0300
|
29
|
+
TZOFFSETTO:-0300
|
30
|
+
TZNAME:BRT
|
31
|
+
DTSTART:19700215T000000
|
32
|
+
RRULE:FREQ=YEARLY;BYMONTH=2;BYDAY=3SU
|
33
|
+
END:STANDARD
|
34
|
+
END:VTIMEZONE
|
35
|
+
BEGIN:VEVENT
|
36
|
+
DTSTART;VALUE=DATE:19400713
|
37
|
+
DTEND;VALUE=DATE:19400714
|
38
|
+
RRULE:FREQ=YEARLY;BYMONTH=7;BYMONTHDAY=13
|
39
|
+
DTSTAMP:20091109T161426Z
|
40
|
+
UID:CD0000008B9511D182D800C04FB1625DF48568F41595384496C2570C025DC032
|
41
|
+
CREATED:20090924T160743Z
|
42
|
+
DESCRIPTION: Description test 12
|
43
|
+
LAST-MODIFIED:20090924T160945Z
|
44
|
+
LOCATION: Location test 12
|
45
|
+
SEQUENCE:0
|
46
|
+
STATUS:CONFIRMED
|
47
|
+
SUMMARY: Event test 12
|
48
|
+
TRANSP:TRANSPARENT
|
49
|
+
END:VEVENT
|
50
|
+
END:VCALENDAR
|
51
|
+
END_STR
|
52
|
+
@cal = RiCal.parse_string(rawdata).first
|
53
|
+
@event = @cal.events.first
|
54
|
+
end
|
55
|
+
|
56
|
+
it "should enumerate 10 events from July 13, 1940 to July 13, 1949 when count is 10" do
|
57
|
+
@event.occurrences(:count => 10).map {|occurrence| occurrence.dtstart}.should == (0..9).map {|y|
|
58
|
+
Date.parse("July 13, #{1940+y}")
|
59
|
+
}
|
60
|
+
end
|
61
|
+
|
62
|
+
# describe "with a dtstart outside the recurrence rule" do
|
63
|
+
# before(:each) do
|
64
|
+
# @event.dtstart = Date.parse("July 12, 1940")
|
65
|
+
# end
|
66
|
+
#
|
67
|
+
# it "should enumerate 10 events first July 12, 1940, July 13, 1940, July 13, 1941 when count is 3" do
|
68
|
+
# @event.occurrences(:count => 3).map {|occurrence| occurrence.dtstart.to_s}.should == [
|
69
|
+
# Date.parse("July 12, 1940").to_s,
|
70
|
+
# Date.parse("July 13, 1940").to_s,
|
71
|
+
# Date.parse("July 13, 1941").to_s
|
72
|
+
# ]
|
73
|
+
#
|
74
|
+
# end
|
75
|
+
#
|
76
|
+
# end
|
77
|
+
|
78
|
+
end
|
data/spec/ri_cal/parser_spec.rb
CHANGED
@@ -233,13 +233,13 @@ describe RiCal::Parser do
|
|
233
233
|
describe_multi_property("VEVENT", "RRULE", {"X-FOO" => "BAR"}, "FREQ=DAILY;COUNT=10", RiCal::PropertyValue::RecurrenceRule)
|
234
234
|
|
235
235
|
#RFC 2445 section 4.8.7.1 CREATED p129
|
236
|
-
describe_property("VEVENT", "CREATED", {"X-FOO" => "BAR"}, "19960329T133000Z", RiCal::PropertyValue::
|
236
|
+
describe_property("VEVENT", "CREATED", {"X-FOO" => "BAR"}, "19960329T133000Z", RiCal::PropertyValue::ZuluDateTime)
|
237
237
|
|
238
238
|
#RFC 2445 section 4.8.7.2 DTSTAMP p129
|
239
|
-
describe_property("VEVENT", "DTSTAMP", {"X-FOO" => "BAR"}, "19971210T080000Z", RiCal::PropertyValue::
|
239
|
+
describe_property("VEVENT", "DTSTAMP", {"X-FOO" => "BAR"}, "19971210T080000Z", RiCal::PropertyValue::ZuluDateTime)
|
240
240
|
|
241
241
|
#RFC 2445 section 4.8.7.3 LAST-MODIFIED p131
|
242
|
-
describe_property("VEVENT", "LAST-MODIFIED", {"X-FOO" => "BAR"}, "19960817T133000Z", RiCal::PropertyValue::
|
242
|
+
describe_property("VEVENT", "LAST-MODIFIED", {"X-FOO" => "BAR"}, "19960817T133000Z", RiCal::PropertyValue::ZuluDateTime)
|
243
243
|
|
244
244
|
#RFC 2445 section 4.8.7.3 SEQUENCE p131
|
245
245
|
describe_property("VEVENT", "SEQUENCE", {"X-FOO" => "BAR"}, 2, RiCal::PropertyValue::Integer)
|
metadata
CHANGED
@@ -1,75 +1,43 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: ri_cal
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
|
4
|
+
prerelease: false
|
5
|
+
segments:
|
6
|
+
- 0
|
7
|
+
- 8
|
8
|
+
- 6
|
9
|
+
version: 0.8.6
|
5
10
|
platform: ruby
|
6
11
|
authors:
|
7
|
-
-
|
12
|
+
- Rick DeNatale
|
8
13
|
autorequire:
|
9
14
|
bindir: bin
|
10
15
|
cert_chain: []
|
11
16
|
|
12
|
-
date:
|
13
|
-
default_executable:
|
14
|
-
dependencies:
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
- !ruby/object:Gem::Version
|
23
|
-
version: 1.5.2
|
24
|
-
version:
|
25
|
-
- !ruby/object:Gem::Dependency
|
26
|
-
name: ruby-prof
|
27
|
-
type: :development
|
28
|
-
version_requirement:
|
29
|
-
version_requirements: !ruby/object:Gem::Requirement
|
30
|
-
requirements:
|
31
|
-
- - ">="
|
32
|
-
- !ruby/object:Gem::Version
|
33
|
-
version: "0"
|
34
|
-
version:
|
35
|
-
- !ruby/object:Gem::Dependency
|
36
|
-
name: hoe
|
37
|
-
type: :development
|
38
|
-
version_requirement:
|
39
|
-
version_requirements: !ruby/object:Gem::Requirement
|
40
|
-
requirements:
|
41
|
-
- - ">="
|
42
|
-
- !ruby/object:Gem::Version
|
43
|
-
version: 2.3.3
|
44
|
-
version:
|
45
|
-
description: |-
|
46
|
-
A new Ruby implementation of RFC2445 iCalendar.
|
47
|
-
|
48
|
-
The existing Ruby iCalendar libraries (e.g. icalendar, vpim) provide for parsing and generating icalendar files,
|
49
|
-
but do not support important things like enumerating occurrences of repeating events.
|
50
|
-
|
51
|
-
This is a clean-slate implementation of RFC2445.
|
52
|
-
|
53
|
-
A Google group for discussion of this library has been set up http://groups.google.com/group/rical_gem
|
54
|
-
email:
|
55
|
-
- rick.denatale@gmail.com
|
17
|
+
date: 2010-04-15 00:00:00 -04:00
|
18
|
+
default_executable: ri_cal
|
19
|
+
dependencies: []
|
20
|
+
|
21
|
+
description: "A new Ruby implementation of RFC2445 iCalendar.\n\n\
|
22
|
+
The existing Ruby iCalendar libraries (e.g. icalendar, vpim) provide for parsing and generating icalendar files,\n\
|
23
|
+
but do not support important things like enumerating occurrences of repeating events.\n\n\
|
24
|
+
This is a clean-slate implementation of RFC2445.\n\n\
|
25
|
+
A Google group for discussion of this library has been set up http://groups.google.com/group/rical_gem\n "
|
26
|
+
email: rick.denatale@gmail.com
|
56
27
|
executables:
|
57
28
|
- ri_cal
|
58
29
|
extensions: []
|
59
30
|
|
60
31
|
extra_rdoc_files:
|
61
32
|
- History.txt
|
62
|
-
- Manifest.txt
|
63
33
|
- README.txt
|
64
34
|
- copyrights.txt
|
65
|
-
- docs/draft-ietf-calsify-2446bis-08.txt
|
66
|
-
- docs/draft-ietf-calsify-rfc2445bis-09.txt
|
67
|
-
- docs/incrementers.txt
|
68
35
|
files:
|
69
36
|
- History.txt
|
70
37
|
- Manifest.txt
|
71
38
|
- README.txt
|
72
39
|
- Rakefile
|
40
|
+
- VERSION
|
73
41
|
- bin/ri_cal
|
74
42
|
- component_attributes/alarm.yml
|
75
43
|
- component_attributes/calendar.yml
|
@@ -179,7 +147,9 @@ files:
|
|
179
147
|
- lib/ri_cal/property_value/text.rb
|
180
148
|
- lib/ri_cal/property_value/uri.rb
|
181
149
|
- lib/ri_cal/property_value/utc_offset.rb
|
150
|
+
- lib/ri_cal/property_value/zulu_date_time.rb
|
182
151
|
- lib/ri_cal/required_timezones.rb
|
152
|
+
- parked_specs/ri_cal/claudio_a_bug_spec.rb
|
183
153
|
- performance/empty_propval/subject.rb
|
184
154
|
- performance/paris_eastern/subject.rb
|
185
155
|
- performance/penultimate_weekday/subject.rb
|
@@ -207,6 +177,7 @@ files:
|
|
207
177
|
- spec/ri_cal/core_extensions/time/calculations_spec.rb
|
208
178
|
- spec/ri_cal/core_extensions/time/week_day_predicates_spec.rb
|
209
179
|
- spec/ri_cal/fast_date_time_spec.rb
|
180
|
+
- spec/ri_cal/inf_loop_spec.rb
|
210
181
|
- spec/ri_cal/occurrence_enumerator_spec.rb
|
211
182
|
- spec/ri_cal/parser_spec.rb
|
212
183
|
- spec/ri_cal/property_value/date_spec.rb
|
@@ -228,33 +199,63 @@ files:
|
|
228
199
|
- tasks/ri_cal.rake
|
229
200
|
- tasks/spec.rake
|
230
201
|
has_rdoc: true
|
231
|
-
homepage: http://
|
202
|
+
homepage: http://github.com/rubyredrick/ri_cal
|
232
203
|
licenses: []
|
233
204
|
|
234
205
|
post_install_message:
|
235
206
|
rdoc_options:
|
236
|
-
- --
|
237
|
-
- README.txt
|
207
|
+
- --charset=UTF-8
|
238
208
|
require_paths:
|
239
209
|
- lib
|
240
210
|
required_ruby_version: !ruby/object:Gem::Requirement
|
241
211
|
requirements:
|
242
212
|
- - ">="
|
243
213
|
- !ruby/object:Gem::Version
|
214
|
+
segments:
|
215
|
+
- 0
|
244
216
|
version: "0"
|
245
|
-
version:
|
246
217
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
247
218
|
requirements:
|
248
219
|
- - ">="
|
249
220
|
- !ruby/object:Gem::Version
|
221
|
+
segments:
|
222
|
+
- 0
|
250
223
|
version: "0"
|
251
|
-
version:
|
252
224
|
requirements: []
|
253
225
|
|
254
|
-
rubyforge_project:
|
255
|
-
rubygems_version: 1.3.
|
226
|
+
rubyforge_project:
|
227
|
+
rubygems_version: 1.3.6
|
256
228
|
signing_key:
|
257
229
|
specification_version: 3
|
258
|
-
summary:
|
259
|
-
test_files:
|
260
|
-
|
230
|
+
summary: a new implementation of RFC2445 in Ruby
|
231
|
+
test_files:
|
232
|
+
- spec/ri_cal/bugreports_spec.rb
|
233
|
+
- spec/ri_cal/component/alarm_spec.rb
|
234
|
+
- spec/ri_cal/component/calendar_spec.rb
|
235
|
+
- spec/ri_cal/component/event_spec.rb
|
236
|
+
- spec/ri_cal/component/freebusy_spec.rb
|
237
|
+
- spec/ri_cal/component/journal_spec.rb
|
238
|
+
- spec/ri_cal/component/t_z_info_timezone_spec.rb
|
239
|
+
- spec/ri_cal/component/timezone_spec.rb
|
240
|
+
- spec/ri_cal/component/todo_spec.rb
|
241
|
+
- spec/ri_cal/component_spec.rb
|
242
|
+
- spec/ri_cal/core_extensions/string/conversions_spec.rb
|
243
|
+
- spec/ri_cal/core_extensions/time/calculations_spec.rb
|
244
|
+
- spec/ri_cal/core_extensions/time/week_day_predicates_spec.rb
|
245
|
+
- spec/ri_cal/fast_date_time_spec.rb
|
246
|
+
- spec/ri_cal/inf_loop_spec.rb
|
247
|
+
- spec/ri_cal/occurrence_enumerator_spec.rb
|
248
|
+
- spec/ri_cal/parser_spec.rb
|
249
|
+
- spec/ri_cal/property_value/date_spec.rb
|
250
|
+
- spec/ri_cal/property_value/date_time_spec.rb
|
251
|
+
- spec/ri_cal/property_value/duration_spec.rb
|
252
|
+
- spec/ri_cal/property_value/occurrence_list_spec.rb
|
253
|
+
- spec/ri_cal/property_value/period_spec.rb
|
254
|
+
- spec/ri_cal/property_value/recurrence_rule/recurring_year_day_spec.rb
|
255
|
+
- spec/ri_cal/property_value/recurrence_rule_spec.rb
|
256
|
+
- spec/ri_cal/property_value/text_spec.rb
|
257
|
+
- spec/ri_cal/property_value/utc_offset_spec.rb
|
258
|
+
- spec/ri_cal/property_value_spec.rb
|
259
|
+
- spec/ri_cal/required_timezones_spec.rb
|
260
|
+
- spec/ri_cal_spec.rb
|
261
|
+
- spec/spec_helper.rb
|