rrule 0.4.1 → 0.4.2
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.
- checksums.yaml +5 -5
- data/.gitignore +2 -0
- data/.rubocop.yml +25 -0
- data/.travis.yml +6 -1
- data/Gemfile +9 -0
- data/Rakefile +9 -3
- data/lib/rrule.rb +4 -0
- data/lib/rrule/context.rb +5 -3
- data/lib/rrule/filters/by_month.rb +2 -0
- data/lib/rrule/filters/by_month_day.rb +2 -0
- data/lib/rrule/filters/by_week_day.rb +2 -0
- data/lib/rrule/filters/by_week_number.rb +2 -0
- data/lib/rrule/filters/by_year_day.rb +3 -1
- data/lib/rrule/frequencies/daily.rb +2 -0
- data/lib/rrule/frequencies/frequency.rb +4 -12
- data/lib/rrule/frequencies/monthly.rb +2 -0
- data/lib/rrule/frequencies/simple_weekly.rb +6 -6
- data/lib/rrule/frequencies/weekly.rb +2 -0
- data/lib/rrule/frequencies/yearly.rb +2 -0
- data/lib/rrule/generators/all_occurrences.rb +2 -0
- data/lib/rrule/generators/by_set_position.rb +2 -0
- data/lib/rrule/generators/generator.rb +3 -1
- data/lib/rrule/rule.rb +18 -33
- data/lib/rrule/version.rb +5 -0
- data/lib/rrule/weekday.rb +3 -1
- data/rrule.gemspec +16 -10
- data/scripts/benchmark.rb +3 -1
- metadata +13 -56
- data/spec/context_spec.rb +0 -261
- data/spec/filters/by_month_day_spec.rb +0 -35
- data/spec/filters/by_month_spec.rb +0 -35
- data/spec/filters/by_week_day_spec.rb +0 -35
- data/spec/filters/by_week_number_spec.rb +0 -41
- data/spec/filters/by_year_day_spec.rb +0 -35
- data/spec/frequencies/daily_spec.rb +0 -62
- data/spec/frequencies/monthly_spec.rb +0 -63
- data/spec/frequencies/simple_weekly_spec.rb +0 -32
- data/spec/frequencies/weekly_spec.rb +0 -92
- data/spec/frequencies/yearly_spec.rb +0 -54
- data/spec/generators/all_occurrences_spec.rb +0 -44
- data/spec/generators/by_set_position_spec.rb +0 -39
- data/spec/generators/generator_spec.rb +0 -110
- data/spec/rule_spec.rb +0 -2338
- data/spec/spec_helper.rb +0 -23
- data/spec/weekday_spec.rb +0 -34
@@ -1,39 +0,0 @@
|
|
1
|
-
require 'spec_helper'
|
2
|
-
|
3
|
-
describe RRule::BySetPosition do
|
4
|
-
let(:context) do
|
5
|
-
RRule::Context.new(
|
6
|
-
{ interval: 1, wkst: 1 },
|
7
|
-
Time.parse('Wed Jan 1 00:00:00 PST 1997'),
|
8
|
-
'America/Los_Angeles'
|
9
|
-
)
|
10
|
-
end
|
11
|
-
|
12
|
-
around(:each) do |example|
|
13
|
-
Time.use_zone('America/Los_Angeles') do
|
14
|
-
example.run
|
15
|
-
end
|
16
|
-
end
|
17
|
-
|
18
|
-
before(:each) { context.rebuild(1997, 1) }
|
19
|
-
|
20
|
-
describe '#combine_dates_and_times' do
|
21
|
-
subject { described_class.new(positions, context).combine_dates_and_times(dates, times)}
|
22
|
-
|
23
|
-
context 'with a single set position' do
|
24
|
-
let(:positions) { [0] }
|
25
|
-
let(:dates) { [0, 1, 2, 3, 4] }
|
26
|
-
let(:times) { [{ hour: 12, minute: 30, second: 15 }] }
|
27
|
-
|
28
|
-
it { is_expected.to match_array [Time.parse('Wed Jan 1 12:30:15 PST 1997')] }
|
29
|
-
end
|
30
|
-
|
31
|
-
context 'with multiple set positions' do
|
32
|
-
let(:positions) { [1, 3] }
|
33
|
-
let(:dates) { [0, 1, 2, 3, 4] }
|
34
|
-
let(:times) { [{ hour: 12, minute: 30, second: 15 }] }
|
35
|
-
|
36
|
-
it { is_expected.to match_array [Time.parse('Wed Jan 1 12:30:15 PST 1997'), Time.parse('Fri Jan 3 12:30:15 PST 1997')] }
|
37
|
-
end
|
38
|
-
end
|
39
|
-
end
|
@@ -1,110 +0,0 @@
|
|
1
|
-
require 'spec_helper'
|
2
|
-
|
3
|
-
describe RRule::Generator do
|
4
|
-
let(:context) do
|
5
|
-
RRule::Context.new(
|
6
|
-
{ interval: 1, wkst: 1 },
|
7
|
-
Time.parse('Wed Jan 1 00:00:00 PST 1997'),
|
8
|
-
'America/Los_Angeles'
|
9
|
-
)
|
10
|
-
end
|
11
|
-
|
12
|
-
around(:each) do |example|
|
13
|
-
Time.use_zone('America/Los_Angeles') do
|
14
|
-
example.run
|
15
|
-
end
|
16
|
-
end
|
17
|
-
|
18
|
-
before(:each) { context.rebuild(1997, 1) }
|
19
|
-
|
20
|
-
describe '#process_timeset' do
|
21
|
-
describe "single timeset" do
|
22
|
-
subject { described_class.new(context).process_timeset(date, timeset)}
|
23
|
-
|
24
|
-
context 'with a timeset with only 1 set' do
|
25
|
-
let(:date) { Time.parse('Wed Jan 1 00:11:22 PST 1997') }
|
26
|
-
let(:timeset) { [{ hour: 12, minute: 30, second: 15 }] }
|
27
|
-
|
28
|
-
it { is_expected.to match_array [Time.parse('Wed Jan 1 12:30:15 PST 1997')] }
|
29
|
-
end
|
30
|
-
|
31
|
-
context 'with multiple hours in the timeset' do
|
32
|
-
let(:date) { Time.parse('Wed Jan 1 00:11:22 PST 1997') }
|
33
|
-
let(:timeset) { [{ hour: [12, 15], minute: 30, second: 15 }] }
|
34
|
-
|
35
|
-
it { is_expected.to match_array [Time.parse('Wed Jan 1 12:30:15 PST 1997'), Time.parse('Wed Jan 1 15:30:15 PST 1997')] }
|
36
|
-
end
|
37
|
-
|
38
|
-
context 'with multiple minutes in the timeset' do
|
39
|
-
let(:date) { Time.parse('Wed Jan 1 00:11:22 PST 1997') }
|
40
|
-
let(:timeset) { [{ hour: [12], minute: [15, 30], second: 15 }] }
|
41
|
-
|
42
|
-
it { is_expected.to match_array [Time.parse('Wed Jan 1 12:15:15 PST 1997'), Time.parse('Wed Jan 1 12:30:15 PST 1997')] }
|
43
|
-
end
|
44
|
-
|
45
|
-
context 'with multiple seconds in the timeset' do
|
46
|
-
let(:date) { Time.parse('Wed Jan 1 00:11:22 PST 1997') }
|
47
|
-
let(:timeset) { [{ hour: [12], minute: [30], second: [15, 59] }] }
|
48
|
-
|
49
|
-
it { is_expected.to match_array [Time.parse('Wed Jan 1 12:30:15 PST 1997'), Time.parse('Wed Jan 1 12:30:59 PST 1997')] }
|
50
|
-
end
|
51
|
-
|
52
|
-
context 'with multiple hours, minutes, and seconds in the timeset' do
|
53
|
-
let(:date) { Time.parse('Wed Jan 1 00:11:22 PST 1997') }
|
54
|
-
let(:timeset) { [{ hour: [12, 20], minute: [30, 55], second: [15, 59] }] }
|
55
|
-
|
56
|
-
it { is_expected.to eq [
|
57
|
-
Time.parse('Wed Jan 1 12:30:15 PST 1997'),
|
58
|
-
Time.parse('Wed Jan 1 12:30:59 PST 1997'),
|
59
|
-
Time.parse('Wed Jan 1 12:55:15 PST 1997'),
|
60
|
-
Time.parse('Wed Jan 1 12:55:59 PST 1997'),
|
61
|
-
Time.parse('Wed Jan 1 20:30:15 PST 1997'),
|
62
|
-
Time.parse('Wed Jan 1 20:30:59 PST 1997'),
|
63
|
-
Time.parse('Wed Jan 1 20:55:15 PST 1997'),
|
64
|
-
Time.parse('Wed Jan 1 20:55:59 PST 1997'),
|
65
|
-
] }
|
66
|
-
end
|
67
|
-
|
68
|
-
context 'with multiple hours, minutes, and seconds in the timeset, unsorted' do
|
69
|
-
let(:date) { Time.parse('Wed Jan 1 00:11:22 PST 1997') }
|
70
|
-
let(:timeset) { [{ hour: [20, 12], minute: [55, 30], second: [59, 15] }] }
|
71
|
-
|
72
|
-
it { is_expected.to eq [
|
73
|
-
Time.parse('Wed Jan 1 12:30:15 PST 1997'),
|
74
|
-
Time.parse('Wed Jan 1 12:30:59 PST 1997'),
|
75
|
-
Time.parse('Wed Jan 1 12:55:15 PST 1997'),
|
76
|
-
Time.parse('Wed Jan 1 12:55:59 PST 1997'),
|
77
|
-
Time.parse('Wed Jan 1 20:30:15 PST 1997'),
|
78
|
-
Time.parse('Wed Jan 1 20:30:59 PST 1997'),
|
79
|
-
Time.parse('Wed Jan 1 20:55:15 PST 1997'),
|
80
|
-
Time.parse('Wed Jan 1 20:55:59 PST 1997'),
|
81
|
-
] }
|
82
|
-
end
|
83
|
-
end
|
84
|
-
end
|
85
|
-
|
86
|
-
describe "multiple timesets" do
|
87
|
-
subject { described_class.new(context).process_timeset(date, timeset)}
|
88
|
-
|
89
|
-
context 'with multiple timsets' do
|
90
|
-
let(:date) { Time.parse('Wed Jan 1 00:11:22 PST 1997') }
|
91
|
-
let(:timeset) { [{ hour: 12, minute: 30, second: 15 }, { hour: 18, minute: 45, second: 20 }] }
|
92
|
-
|
93
|
-
it { is_expected.to eq [Time.parse('Wed Jan 1 12:30:15 PST 1997'), Time.parse('Wed Jan 1 18:45:20 PST 1997')] }
|
94
|
-
end
|
95
|
-
|
96
|
-
context 'with multiple timsets with multiple hour sets' do
|
97
|
-
let(:date) { Time.parse('Wed Jan 1 00:11:22 PST 1997') }
|
98
|
-
let(:timeset) { [{ hour: [12, 20], minute: 30, second: [15, 45] }, { hour: 18, minute: [22, 45], second: 20 }] }
|
99
|
-
|
100
|
-
it { is_expected.to eq [
|
101
|
-
Time.parse('Wed Jan 1 12:30:15 PST 1997'),
|
102
|
-
Time.parse('Wed Jan 1 12:30:45 PST 1997'),
|
103
|
-
Time.parse('Wed Jan 1 20:30:15 PST 1997'),
|
104
|
-
Time.parse('Wed Jan 1 20:30:45 PST 1997'),
|
105
|
-
Time.parse('Wed Jan 1 18:22:20 PST 1997'),
|
106
|
-
Time.parse('Wed Jan 1 18:45:20 PST 1997')
|
107
|
-
] }
|
108
|
-
end
|
109
|
-
end
|
110
|
-
end
|
data/spec/rule_spec.rb
DELETED
@@ -1,2338 +0,0 @@
|
|
1
|
-
require 'spec_helper'
|
2
|
-
|
3
|
-
describe RRule::Rule do
|
4
|
-
describe '#next' do
|
5
|
-
it 'can sequentially return values' do
|
6
|
-
rrule = 'FREQ=DAILY;COUNT=10'
|
7
|
-
dtstart = Time.parse('Tue Sep 2 06:00:00 PDT 1997')
|
8
|
-
timezone = 'America/New_York'
|
9
|
-
|
10
|
-
rrule = RRule::Rule.new(rrule, dtstart: dtstart, tzid: timezone)
|
11
|
-
|
12
|
-
expect(rrule.next).to eql Time.parse('Tue Sep 2 06:00:00 PDT 1997')
|
13
|
-
expect(rrule.next).to eql Time.parse('Wed Sep 3 06:00:00 PDT 1997')
|
14
|
-
expect(rrule.next).to eql Time.parse('Thu Sep 4 06:00:00 PDT 1997')
|
15
|
-
end
|
16
|
-
end
|
17
|
-
|
18
|
-
describe '#take' do
|
19
|
-
it 'can return the next N instances' do
|
20
|
-
rrule = 'FREQ=DAILY;COUNT=10'
|
21
|
-
dtstart = Time.parse('Tue Sep 2 06:00:00 PDT 1997')
|
22
|
-
timezone = 'America/New_York'
|
23
|
-
|
24
|
-
rrule = RRule::Rule.new(rrule, dtstart: dtstart, tzid: timezone)
|
25
|
-
expect(rrule.take(3)).to match_array([
|
26
|
-
Time.parse('Tue Sep 2 06:00:00 PDT 1997'),
|
27
|
-
Time.parse('Wed Sep 3 06:00:00 PDT 1997'),
|
28
|
-
Time.parse('Thu Sep 4 06:00:00 PDT 1997')
|
29
|
-
])
|
30
|
-
end
|
31
|
-
end
|
32
|
-
|
33
|
-
describe 'iterating with a floor_date' do
|
34
|
-
describe 'No COUNT or INTERVAL > 1' do
|
35
|
-
it 'uses the floor_date provided when iterating' do
|
36
|
-
rrule = 'FREQ=DAILY'
|
37
|
-
dtstart = Time.parse('Tue Sep 2 06:00:00 PDT 1997')
|
38
|
-
timezone = 'America/New_York'
|
39
|
-
|
40
|
-
rrule = RRule::Rule.new(rrule, dtstart: dtstart, tzid: timezone)
|
41
|
-
|
42
|
-
floor_date = Time.parse('Mon Sep 3 06:00:00 PDT 2018')
|
43
|
-
|
44
|
-
expect(rrule.each(floor_date: floor_date).take(3)).to match_array([
|
45
|
-
Time.parse('Tue Sep 3 06:00:00 PDT 2018'),
|
46
|
-
Time.parse('Wed Sep 4 06:00:00 PDT 2018'),
|
47
|
-
Time.parse('Thu Sep 5 06:00:00 PDT 2018')
|
48
|
-
])
|
49
|
-
end
|
50
|
-
end
|
51
|
-
|
52
|
-
describe 'COUNT present' do
|
53
|
-
it 'starts at dtstart when iterating' do
|
54
|
-
rrule = 'FREQ=DAILY;COUNT=10'
|
55
|
-
dtstart = Time.parse('Tue Sep 2 06:00:00 PDT 1997')
|
56
|
-
timezone = 'America/New_York'
|
57
|
-
|
58
|
-
rrule = RRule::Rule.new(rrule, dtstart: dtstart, tzid: timezone)
|
59
|
-
|
60
|
-
floor_date = Time.parse('Mon Sep 3 06:00:00 PDT 2018')
|
61
|
-
|
62
|
-
expect(rrule.each(floor_date: floor_date).take(3)).to match_array([
|
63
|
-
Time.parse('Tue Sep 2 06:00:00 PDT 1997'),
|
64
|
-
Time.parse('Wed Sep 3 06:00:00 PDT 1997'),
|
65
|
-
Time.parse('Thu Sep 4 06:00:00 PDT 1997'),
|
66
|
-
])
|
67
|
-
end
|
68
|
-
end
|
69
|
-
|
70
|
-
describe 'INTERVAL present' do
|
71
|
-
it 'starts at dtstart when iterating' do
|
72
|
-
rrule = 'FREQ=DAILY;INTERVAL=10'
|
73
|
-
dtstart = Time.parse('Tue Sep 2 06:00:00 PDT 1997')
|
74
|
-
timezone = 'America/New_York'
|
75
|
-
|
76
|
-
rrule = RRule::Rule.new(rrule, dtstart: dtstart, tzid: timezone)
|
77
|
-
|
78
|
-
floor_date = Time.parse('Mon Sep 3 06:00:00 PDT 2018')
|
79
|
-
|
80
|
-
expect(rrule.each(floor_date: floor_date).take(3)).to match_array([
|
81
|
-
Time.parse('Tue Sep 2 06:00:00 PDT 1997'),
|
82
|
-
Time.parse('Fri Sep 12 06:00:00 PDT 1997'),
|
83
|
-
Time.parse('Mon Sep 22 06:00:00 PDT 1997'),
|
84
|
-
])
|
85
|
-
end
|
86
|
-
end
|
87
|
-
|
88
|
-
describe 'INTERVAL AND COUNT present' do
|
89
|
-
it 'starts at dtstart when iterating' do
|
90
|
-
rrule = 'FREQ=DAILY;INTERVAL=10;COUNT=5'
|
91
|
-
dtstart = Time.parse('Tue Sep 2 06:00:00 PDT 1997')
|
92
|
-
timezone = 'America/New_York'
|
93
|
-
|
94
|
-
rrule = RRule::Rule.new(rrule, dtstart: dtstart, tzid: timezone)
|
95
|
-
|
96
|
-
floor_date = Time.parse('Mon Sep 3 06:00:00 PDT 2018')
|
97
|
-
|
98
|
-
expect(rrule.each(floor_date: floor_date).take(3)).to match_array([
|
99
|
-
Time.parse('Tue Sep 2 06:00:00 PDT 1997'),
|
100
|
-
Time.parse('Fri Sep 12 06:00:00 PDT 1997'),
|
101
|
-
Time.parse('Mon Sep 22 06:00:00 PDT 1997'),
|
102
|
-
])
|
103
|
-
end
|
104
|
-
end
|
105
|
-
end
|
106
|
-
|
107
|
-
describe '#all' do
|
108
|
-
it 'returns the correct result with an rrule of FREQ=DAILY;COUNT=10' do
|
109
|
-
rrule = 'FREQ=DAILY;COUNT=10'
|
110
|
-
dtstart = Time.parse('Tue Sep 2 06:00:00 PDT 1997')
|
111
|
-
timezone = 'America/New_York'
|
112
|
-
|
113
|
-
rrule = RRule::Rule.new(rrule, dtstart: dtstart, tzid: timezone)
|
114
|
-
expect(rrule.all).to match_array([
|
115
|
-
Time.parse('Tue Sep 2 06:00:00 PDT 1997'),
|
116
|
-
Time.parse('Wed Sep 3 06:00:00 PDT 1997'),
|
117
|
-
Time.parse('Thu Sep 4 06:00:00 PDT 1997'),
|
118
|
-
Time.parse('Fri Sep 5 06:00:00 PDT 1997'),
|
119
|
-
Time.parse('Sat Sep 6 06:00:00 PDT 1997'),
|
120
|
-
Time.parse('Sun Sep 7 06:00:00 PDT 1997'),
|
121
|
-
Time.parse('Mon Sep 8 06:00:00 PDT 1997'),
|
122
|
-
Time.parse('Tue Sep 9 06:00:00 PDT 1997'),
|
123
|
-
Time.parse('Wed Sep 10 06:00:00 PDT 1997'),
|
124
|
-
Time.parse('Thu Sep 11 06:00:00 PDT 1997')
|
125
|
-
])
|
126
|
-
end
|
127
|
-
|
128
|
-
it 'returns the correct result with an rrule of FREQ=DAILY;COUNT=10 and a limit' do
|
129
|
-
rrule = 'FREQ=DAILY;COUNT=10'
|
130
|
-
dtstart = Time.parse('Tue Sep 2 06:00:00 PDT 1997')
|
131
|
-
timezone = 'America/New_York'
|
132
|
-
|
133
|
-
rrule = RRule::Rule.new(rrule, dtstart: dtstart, tzid: timezone)
|
134
|
-
expect(rrule.all(limit: 5)).to match_array([
|
135
|
-
Time.parse('Tue Sep 2 06:00:00 PDT 1997'),
|
136
|
-
Time.parse('Wed Sep 3 06:00:00 PDT 1997'),
|
137
|
-
Time.parse('Thu Sep 4 06:00:00 PDT 1997'),
|
138
|
-
Time.parse('Fri Sep 5 06:00:00 PDT 1997'),
|
139
|
-
Time.parse('Sat Sep 6 06:00:00 PDT 1997')
|
140
|
-
])
|
141
|
-
end
|
142
|
-
|
143
|
-
it 'returns the correct result with an rrule of FREQ=DAILY;UNTIL=19971224T000000Z' do
|
144
|
-
rrule = 'FREQ=DAILY;UNTIL=19971224T000000Z'
|
145
|
-
dtstart = Time.parse('Tue Sep 2 06:00:00 PDT 1997')
|
146
|
-
timezone = 'America/New_York'
|
147
|
-
|
148
|
-
rrule = RRule::Rule.new(rrule, dtstart: dtstart, tzid: timezone)
|
149
|
-
expect(rrule.all).to match_array([
|
150
|
-
Time.parse('Tue Sep 2 06:00:00 PDT 1997'),
|
151
|
-
Time.parse('Wed Sep 3 06:00:00 PDT 1997'),
|
152
|
-
Time.parse('Thu Sep 4 06:00:00 PDT 1997'),
|
153
|
-
Time.parse('Fri Sep 5 06:00:00 PDT 1997'),
|
154
|
-
Time.parse('Sat Sep 6 06:00:00 PDT 1997'),
|
155
|
-
Time.parse('Sun Sep 7 06:00:00 PDT 1997'),
|
156
|
-
Time.parse('Mon Sep 8 06:00:00 PDT 1997'),
|
157
|
-
Time.parse('Tue Sep 9 06:00:00 PDT 1997'),
|
158
|
-
Time.parse('Wed Sep 10 06:00:00 PDT 1997'),
|
159
|
-
Time.parse('Thu Sep 11 06:00:00 PDT 1997'),
|
160
|
-
Time.parse('Fri Sep 12 06:00:00 PDT 1997'),
|
161
|
-
Time.parse('Sat Sep 13 06:00:00 PDT 1997'),
|
162
|
-
Time.parse('Sun Sep 14 06:00:00 PDT 1997'),
|
163
|
-
Time.parse('Mon Sep 15 06:00:00 PDT 1997'),
|
164
|
-
Time.parse('Tue Sep 16 06:00:00 PDT 1997'),
|
165
|
-
Time.parse('Wed Sep 17 06:00:00 PDT 1997'),
|
166
|
-
Time.parse('Thu Sep 18 06:00:00 PDT 1997'),
|
167
|
-
Time.parse('Fri Sep 19 06:00:00 PDT 1997'),
|
168
|
-
Time.parse('Sat Sep 20 06:00:00 PDT 1997'),
|
169
|
-
Time.parse('Sun Sep 21 06:00:00 PDT 1997'),
|
170
|
-
Time.parse('Mon Sep 22 06:00:00 PDT 1997'),
|
171
|
-
Time.parse('Tue Sep 23 06:00:00 PDT 1997'),
|
172
|
-
Time.parse('Wed Sep 24 06:00:00 PDT 1997'),
|
173
|
-
Time.parse('Thu Sep 25 06:00:00 PDT 1997'),
|
174
|
-
Time.parse('Fri Sep 26 06:00:00 PDT 1997'),
|
175
|
-
Time.parse('Sat Sep 27 06:00:00 PDT 1997'),
|
176
|
-
Time.parse('Sun Sep 28 06:00:00 PDT 1997'),
|
177
|
-
Time.parse('Mon Sep 29 06:00:00 PDT 1997'),
|
178
|
-
Time.parse('Tue Sep 30 06:00:00 PDT 1997'),
|
179
|
-
Time.parse('Wed Oct 1 06:00:00 PDT 1997'),
|
180
|
-
Time.parse('Thu Oct 2 06:00:00 PDT 1997'),
|
181
|
-
Time.parse('Fri Oct 3 06:00:00 PDT 1997'),
|
182
|
-
Time.parse('Sat Oct 4 06:00:00 PDT 1997'),
|
183
|
-
Time.parse('Sun Oct 5 06:00:00 PDT 1997'),
|
184
|
-
Time.parse('Mon Oct 6 06:00:00 PDT 1997'),
|
185
|
-
Time.parse('Tue Oct 7 06:00:00 PDT 1997'),
|
186
|
-
Time.parse('Wed Oct 8 06:00:00 PDT 1997'),
|
187
|
-
Time.parse('Thu Oct 9 06:00:00 PDT 1997'),
|
188
|
-
Time.parse('Fri Oct 10 06:00:00 PDT 1997'),
|
189
|
-
Time.parse('Sat Oct 11 06:00:00 PDT 1997'),
|
190
|
-
Time.parse('Sun Oct 12 06:00:00 PDT 1997'),
|
191
|
-
Time.parse('Mon Oct 13 06:00:00 PDT 1997'),
|
192
|
-
Time.parse('Tue Oct 14 06:00:00 PDT 1997'),
|
193
|
-
Time.parse('Wed Oct 15 06:00:00 PDT 1997'),
|
194
|
-
Time.parse('Thu Oct 16 06:00:00 PDT 1997'),
|
195
|
-
Time.parse('Fri Oct 17 06:00:00 PDT 1997'),
|
196
|
-
Time.parse('Sat Oct 18 06:00:00 PDT 1997'),
|
197
|
-
Time.parse('Sun Oct 19 06:00:00 PDT 1997'),
|
198
|
-
Time.parse('Mon Oct 20 06:00:00 PDT 1997'),
|
199
|
-
Time.parse('Tue Oct 21 06:00:00 PDT 1997'),
|
200
|
-
Time.parse('Wed Oct 22 06:00:00 PDT 1997'),
|
201
|
-
Time.parse('Thu Oct 23 06:00:00 PDT 1997'),
|
202
|
-
Time.parse('Fri Oct 24 06:00:00 PDT 1997'),
|
203
|
-
Time.parse('Sat Oct 25 06:00:00 PDT 1997'),
|
204
|
-
Time.parse('Sun Oct 26 06:00:00 PST 1997'),
|
205
|
-
Time.parse('Mon Oct 27 06:00:00 PST 1997'),
|
206
|
-
Time.parse('Tue Oct 28 06:00:00 PST 1997'),
|
207
|
-
Time.parse('Wed Oct 29 06:00:00 PST 1997'),
|
208
|
-
Time.parse('Thu Oct 30 06:00:00 PST 1997'),
|
209
|
-
Time.parse('Fri Oct 31 06:00:00 PST 1997'),
|
210
|
-
Time.parse('Sat Nov 1 06:00:00 PST 1997'),
|
211
|
-
Time.parse('Sun Nov 2 06:00:00 PST 1997'),
|
212
|
-
Time.parse('Mon Nov 3 06:00:00 PST 1997'),
|
213
|
-
Time.parse('Tue Nov 4 06:00:00 PST 1997'),
|
214
|
-
Time.parse('Wed Nov 5 06:00:00 PST 1997'),
|
215
|
-
Time.parse('Thu Nov 6 06:00:00 PST 1997'),
|
216
|
-
Time.parse('Fri Nov 7 06:00:00 PST 1997'),
|
217
|
-
Time.parse('Sat Nov 8 06:00:00 PST 1997'),
|
218
|
-
Time.parse('Sun Nov 9 06:00:00 PST 1997'),
|
219
|
-
Time.parse('Mon Nov 10 06:00:00 PST 1997'),
|
220
|
-
Time.parse('Tue Nov 11 06:00:00 PST 1997'),
|
221
|
-
Time.parse('Wed Nov 12 06:00:00 PST 1997'),
|
222
|
-
Time.parse('Thu Nov 13 06:00:00 PST 1997'),
|
223
|
-
Time.parse('Fri Nov 14 06:00:00 PST 1997'),
|
224
|
-
Time.parse('Sat Nov 15 06:00:00 PST 1997'),
|
225
|
-
Time.parse('Sun Nov 16 06:00:00 PST 1997'),
|
226
|
-
Time.parse('Mon Nov 17 06:00:00 PST 1997'),
|
227
|
-
Time.parse('Tue Nov 18 06:00:00 PST 1997'),
|
228
|
-
Time.parse('Wed Nov 19 06:00:00 PST 1997'),
|
229
|
-
Time.parse('Thu Nov 20 06:00:00 PST 1997'),
|
230
|
-
Time.parse('Fri Nov 21 06:00:00 PST 1997'),
|
231
|
-
Time.parse('Sat Nov 22 06:00:00 PST 1997'),
|
232
|
-
Time.parse('Sun Nov 23 06:00:00 PST 1997'),
|
233
|
-
Time.parse('Mon Nov 24 06:00:00 PST 1997'),
|
234
|
-
Time.parse('Tue Nov 25 06:00:00 PST 1997'),
|
235
|
-
Time.parse('Wed Nov 26 06:00:00 PST 1997'),
|
236
|
-
Time.parse('Thu Nov 27 06:00:00 PST 1997'),
|
237
|
-
Time.parse('Fri Nov 28 06:00:00 PST 1997'),
|
238
|
-
Time.parse('Sat Nov 29 06:00:00 PST 1997'),
|
239
|
-
Time.parse('Sun Nov 30 06:00:00 PST 1997'),
|
240
|
-
Time.parse('Mon Dec 1 06:00:00 PST 1997'),
|
241
|
-
Time.parse('Tue Dec 2 06:00:00 PST 1997'),
|
242
|
-
Time.parse('Wed Dec 3 06:00:00 PST 1997'),
|
243
|
-
Time.parse('Thu Dec 4 06:00:00 PST 1997'),
|
244
|
-
Time.parse('Fri Dec 5 06:00:00 PST 1997'),
|
245
|
-
Time.parse('Sat Dec 6 06:00:00 PST 1997'),
|
246
|
-
Time.parse('Sun Dec 7 06:00:00 PST 1997'),
|
247
|
-
Time.parse('Mon Dec 8 06:00:00 PST 1997'),
|
248
|
-
Time.parse('Tue Dec 9 06:00:00 PST 1997'),
|
249
|
-
Time.parse('Wed Dec 10 06:00:00 PST 1997'),
|
250
|
-
Time.parse('Thu Dec 11 06:00:00 PST 1997'),
|
251
|
-
Time.parse('Fri Dec 12 06:00:00 PST 1997'),
|
252
|
-
Time.parse('Sat Dec 13 06:00:00 PST 1997'),
|
253
|
-
Time.parse('Sun Dec 14 06:00:00 PST 1997'),
|
254
|
-
Time.parse('Mon Dec 15 06:00:00 PST 1997'),
|
255
|
-
Time.parse('Tue Dec 16 06:00:00 PST 1997'),
|
256
|
-
Time.parse('Wed Dec 17 06:00:00 PST 1997'),
|
257
|
-
Time.parse('Thu Dec 18 06:00:00 PST 1997'),
|
258
|
-
Time.parse('Fri Dec 19 06:00:00 PST 1997'),
|
259
|
-
Time.parse('Sat Dec 20 06:00:00 PST 1997'),
|
260
|
-
Time.parse('Sun Dec 21 06:00:00 PST 1997'),
|
261
|
-
Time.parse('Mon Dec 22 06:00:00 PST 1997'),
|
262
|
-
Time.parse('Tue Dec 23 06:00:00 PST 1997')
|
263
|
-
])
|
264
|
-
end
|
265
|
-
|
266
|
-
it 'returns the correct result with an rrule of FREQ=DAILY;INTERVAL=10;COUNT=5' do
|
267
|
-
rrule = 'FREQ=DAILY;INTERVAL=10;COUNT=5'
|
268
|
-
dtstart = Time.parse('Tue Sep 2 06:00:00 PDT 1997')
|
269
|
-
timezone = 'America/New_York'
|
270
|
-
|
271
|
-
rrule = RRule::Rule.new(rrule, dtstart: dtstart, tzid: timezone)
|
272
|
-
expect(rrule.all).to match_array([
|
273
|
-
Time.parse('Tue Sep 2 06:00:00 PDT 1997'),
|
274
|
-
Time.parse('Fri Sep 12 06:00:00 PDT 1997'),
|
275
|
-
Time.parse('Mon Sep 22 06:00:00 PDT 1997'),
|
276
|
-
Time.parse('Thu Oct 2 06:00:00 PDT 1997'),
|
277
|
-
Time.parse('Sun Oct 12 06:00:00 PDT 1997')
|
278
|
-
])
|
279
|
-
end
|
280
|
-
|
281
|
-
it 'returns the correct result with an rrule of FREQ=YEARLY;UNTIL=20000131T140000Z;BYMONTH=1;BYDAY=SU,MO,TU,WE,TH,FR,SA' do
|
282
|
-
rrule = 'FREQ=YEARLY;UNTIL=20000131T140000Z;BYMONTH=1;BYDAY=SU,MO,TU,WE,TH,FR,SA'
|
283
|
-
dtstart = Time.parse('Thu Jan 1 06:00:00 PST 1998')
|
284
|
-
timezone = 'America/New_York'
|
285
|
-
|
286
|
-
rrule = RRule::Rule.new(rrule, dtstart: dtstart, tzid: timezone)
|
287
|
-
expect(rrule.all).to match_array([
|
288
|
-
Time.parse('Thu Jan 1 06:00:00 PST 1998'),
|
289
|
-
Time.parse('Fri Jan 2 06:00:00 PST 1998'),
|
290
|
-
Time.parse('Sat Jan 3 06:00:00 PST 1998'),
|
291
|
-
Time.parse('Sun Jan 4 06:00:00 PST 1998'),
|
292
|
-
Time.parse('Mon Jan 5 06:00:00 PST 1998'),
|
293
|
-
Time.parse('Tue Jan 6 06:00:00 PST 1998'),
|
294
|
-
Time.parse('Wed Jan 7 06:00:00 PST 1998'),
|
295
|
-
Time.parse('Thu Jan 8 06:00:00 PST 1998'),
|
296
|
-
Time.parse('Fri Jan 9 06:00:00 PST 1998'),
|
297
|
-
Time.parse('Sat Jan 10 06:00:00 PST 1998'),
|
298
|
-
Time.parse('Sun Jan 11 06:00:00 PST 1998'),
|
299
|
-
Time.parse('Mon Jan 12 06:00:00 PST 1998'),
|
300
|
-
Time.parse('Tue Jan 13 06:00:00 PST 1998'),
|
301
|
-
Time.parse('Wed Jan 14 06:00:00 PST 1998'),
|
302
|
-
Time.parse('Thu Jan 15 06:00:00 PST 1998'),
|
303
|
-
Time.parse('Fri Jan 16 06:00:00 PST 1998'),
|
304
|
-
Time.parse('Sat Jan 17 06:00:00 PST 1998'),
|
305
|
-
Time.parse('Sun Jan 18 06:00:00 PST 1998'),
|
306
|
-
Time.parse('Mon Jan 19 06:00:00 PST 1998'),
|
307
|
-
Time.parse('Tue Jan 20 06:00:00 PST 1998'),
|
308
|
-
Time.parse('Wed Jan 21 06:00:00 PST 1998'),
|
309
|
-
Time.parse('Thu Jan 22 06:00:00 PST 1998'),
|
310
|
-
Time.parse('Fri Jan 23 06:00:00 PST 1998'),
|
311
|
-
Time.parse('Sat Jan 24 06:00:00 PST 1998'),
|
312
|
-
Time.parse('Sun Jan 25 06:00:00 PST 1998'),
|
313
|
-
Time.parse('Mon Jan 26 06:00:00 PST 1998'),
|
314
|
-
Time.parse('Tue Jan 27 06:00:00 PST 1998'),
|
315
|
-
Time.parse('Wed Jan 28 06:00:00 PST 1998'),
|
316
|
-
Time.parse('Thu Jan 29 06:00:00 PST 1998'),
|
317
|
-
Time.parse('Fri Jan 30 06:00:00 PST 1998'),
|
318
|
-
Time.parse('Sat Jan 31 06:00:00 PST 1998'),
|
319
|
-
Time.parse('Fri Jan 1 06:00:00 PST 1999'),
|
320
|
-
Time.parse('Sat Jan 2 06:00:00 PST 1999'),
|
321
|
-
Time.parse('Sun Jan 3 06:00:00 PST 1999'),
|
322
|
-
Time.parse('Mon Jan 4 06:00:00 PST 1999'),
|
323
|
-
Time.parse('Tue Jan 5 06:00:00 PST 1999'),
|
324
|
-
Time.parse('Wed Jan 6 06:00:00 PST 1999'),
|
325
|
-
Time.parse('Thu Jan 7 06:00:00 PST 1999'),
|
326
|
-
Time.parse('Fri Jan 8 06:00:00 PST 1999'),
|
327
|
-
Time.parse('Sat Jan 9 06:00:00 PST 1999'),
|
328
|
-
Time.parse('Sun Jan 10 06:00:00 PST 1999'),
|
329
|
-
Time.parse('Mon Jan 11 06:00:00 PST 1999'),
|
330
|
-
Time.parse('Tue Jan 12 06:00:00 PST 1999'),
|
331
|
-
Time.parse('Wed Jan 13 06:00:00 PST 1999'),
|
332
|
-
Time.parse('Thu Jan 14 06:00:00 PST 1999'),
|
333
|
-
Time.parse('Fri Jan 15 06:00:00 PST 1999'),
|
334
|
-
Time.parse('Sat Jan 16 06:00:00 PST 1999'),
|
335
|
-
Time.parse('Sun Jan 17 06:00:00 PST 1999'),
|
336
|
-
Time.parse('Mon Jan 18 06:00:00 PST 1999'),
|
337
|
-
Time.parse('Tue Jan 19 06:00:00 PST 1999'),
|
338
|
-
Time.parse('Wed Jan 20 06:00:00 PST 1999'),
|
339
|
-
Time.parse('Thu Jan 21 06:00:00 PST 1999'),
|
340
|
-
Time.parse('Fri Jan 22 06:00:00 PST 1999'),
|
341
|
-
Time.parse('Sat Jan 23 06:00:00 PST 1999'),
|
342
|
-
Time.parse('Sun Jan 24 06:00:00 PST 1999'),
|
343
|
-
Time.parse('Mon Jan 25 06:00:00 PST 1999'),
|
344
|
-
Time.parse('Tue Jan 26 06:00:00 PST 1999'),
|
345
|
-
Time.parse('Wed Jan 27 06:00:00 PST 1999'),
|
346
|
-
Time.parse('Thu Jan 28 06:00:00 PST 1999'),
|
347
|
-
Time.parse('Fri Jan 29 06:00:00 PST 1999'),
|
348
|
-
Time.parse('Sat Jan 30 06:00:00 PST 1999'),
|
349
|
-
Time.parse('Sun Jan 31 06:00:00 PST 1999'),
|
350
|
-
Time.parse('Sat Jan 1 06:00:00 PST 2000'),
|
351
|
-
Time.parse('Sun Jan 2 06:00:00 PST 2000'),
|
352
|
-
Time.parse('Mon Jan 3 06:00:00 PST 2000'),
|
353
|
-
Time.parse('Tue Jan 4 06:00:00 PST 2000'),
|
354
|
-
Time.parse('Wed Jan 5 06:00:00 PST 2000'),
|
355
|
-
Time.parse('Thu Jan 6 06:00:00 PST 2000'),
|
356
|
-
Time.parse('Fri Jan 7 06:00:00 PST 2000'),
|
357
|
-
Time.parse('Sat Jan 8 06:00:00 PST 2000'),
|
358
|
-
Time.parse('Sun Jan 9 06:00:00 PST 2000'),
|
359
|
-
Time.parse('Mon Jan 10 06:00:00 PST 2000'),
|
360
|
-
Time.parse('Tue Jan 11 06:00:00 PST 2000'),
|
361
|
-
Time.parse('Wed Jan 12 06:00:00 PST 2000'),
|
362
|
-
Time.parse('Thu Jan 13 06:00:00 PST 2000'),
|
363
|
-
Time.parse('Fri Jan 14 06:00:00 PST 2000'),
|
364
|
-
Time.parse('Sat Jan 15 06:00:00 PST 2000'),
|
365
|
-
Time.parse('Sun Jan 16 06:00:00 PST 2000'),
|
366
|
-
Time.parse('Mon Jan 17 06:00:00 PST 2000'),
|
367
|
-
Time.parse('Tue Jan 18 06:00:00 PST 2000'),
|
368
|
-
Time.parse('Wed Jan 19 06:00:00 PST 2000'),
|
369
|
-
Time.parse('Thu Jan 20 06:00:00 PST 2000'),
|
370
|
-
Time.parse('Fri Jan 21 06:00:00 PST 2000'),
|
371
|
-
Time.parse('Sat Jan 22 06:00:00 PST 2000'),
|
372
|
-
Time.parse('Sun Jan 23 06:00:00 PST 2000'),
|
373
|
-
Time.parse('Mon Jan 24 06:00:00 PST 2000'),
|
374
|
-
Time.parse('Tue Jan 25 06:00:00 PST 2000'),
|
375
|
-
Time.parse('Wed Jan 26 06:00:00 PST 2000'),
|
376
|
-
Time.parse('Thu Jan 27 06:00:00 PST 2000'),
|
377
|
-
Time.parse('Fri Jan 28 06:00:00 PST 2000'),
|
378
|
-
Time.parse('Sat Jan 29 06:00:00 PST 2000'),
|
379
|
-
Time.parse('Sun Jan 30 06:00:00 PST 2000'),
|
380
|
-
Time.parse('Mon Jan 31 06:00:00 PST 2000')
|
381
|
-
])
|
382
|
-
end
|
383
|
-
|
384
|
-
it 'returns the correct result with an rrule of FREQ=DAILY;UNTIL=20000131T140000Z;BYMONTH=1' do
|
385
|
-
rrule = 'FREQ=DAILY;UNTIL=20000131T140000Z;BYMONTH=1'
|
386
|
-
dtstart = Time.parse('Thu Jan 1 06:00:00 PST 1998')
|
387
|
-
timezone = 'America/New_York'
|
388
|
-
|
389
|
-
rrule = RRule::Rule.new(rrule, dtstart: dtstart, tzid: timezone)
|
390
|
-
expect(rrule.all).to match_array([
|
391
|
-
Time.parse('Thu Jan 1 06:00:00 PST 1998'),
|
392
|
-
Time.parse('Fri Jan 2 06:00:00 PST 1998'),
|
393
|
-
Time.parse('Sat Jan 3 06:00:00 PST 1998'),
|
394
|
-
Time.parse('Sun Jan 4 06:00:00 PST 1998'),
|
395
|
-
Time.parse('Mon Jan 5 06:00:00 PST 1998'),
|
396
|
-
Time.parse('Tue Jan 6 06:00:00 PST 1998'),
|
397
|
-
Time.parse('Wed Jan 7 06:00:00 PST 1998'),
|
398
|
-
Time.parse('Thu Jan 8 06:00:00 PST 1998'),
|
399
|
-
Time.parse('Fri Jan 9 06:00:00 PST 1998'),
|
400
|
-
Time.parse('Sat Jan 10 06:00:00 PST 1998'),
|
401
|
-
Time.parse('Sun Jan 11 06:00:00 PST 1998'),
|
402
|
-
Time.parse('Mon Jan 12 06:00:00 PST 1998'),
|
403
|
-
Time.parse('Tue Jan 13 06:00:00 PST 1998'),
|
404
|
-
Time.parse('Wed Jan 14 06:00:00 PST 1998'),
|
405
|
-
Time.parse('Thu Jan 15 06:00:00 PST 1998'),
|
406
|
-
Time.parse('Fri Jan 16 06:00:00 PST 1998'),
|
407
|
-
Time.parse('Sat Jan 17 06:00:00 PST 1998'),
|
408
|
-
Time.parse('Sun Jan 18 06:00:00 PST 1998'),
|
409
|
-
Time.parse('Mon Jan 19 06:00:00 PST 1998'),
|
410
|
-
Time.parse('Tue Jan 20 06:00:00 PST 1998'),
|
411
|
-
Time.parse('Wed Jan 21 06:00:00 PST 1998'),
|
412
|
-
Time.parse('Thu Jan 22 06:00:00 PST 1998'),
|
413
|
-
Time.parse('Fri Jan 23 06:00:00 PST 1998'),
|
414
|
-
Time.parse('Sat Jan 24 06:00:00 PST 1998'),
|
415
|
-
Time.parse('Sun Jan 25 06:00:00 PST 1998'),
|
416
|
-
Time.parse('Mon Jan 26 06:00:00 PST 1998'),
|
417
|
-
Time.parse('Tue Jan 27 06:00:00 PST 1998'),
|
418
|
-
Time.parse('Wed Jan 28 06:00:00 PST 1998'),
|
419
|
-
Time.parse('Thu Jan 29 06:00:00 PST 1998'),
|
420
|
-
Time.parse('Fri Jan 30 06:00:00 PST 1998'),
|
421
|
-
Time.parse('Sat Jan 31 06:00:00 PST 1998'),
|
422
|
-
Time.parse('Fri Jan 1 06:00:00 PST 1999'),
|
423
|
-
Time.parse('Sat Jan 2 06:00:00 PST 1999'),
|
424
|
-
Time.parse('Sun Jan 3 06:00:00 PST 1999'),
|
425
|
-
Time.parse('Mon Jan 4 06:00:00 PST 1999'),
|
426
|
-
Time.parse('Tue Jan 5 06:00:00 PST 1999'),
|
427
|
-
Time.parse('Wed Jan 6 06:00:00 PST 1999'),
|
428
|
-
Time.parse('Thu Jan 7 06:00:00 PST 1999'),
|
429
|
-
Time.parse('Fri Jan 8 06:00:00 PST 1999'),
|
430
|
-
Time.parse('Sat Jan 9 06:00:00 PST 1999'),
|
431
|
-
Time.parse('Sun Jan 10 06:00:00 PST 1999'),
|
432
|
-
Time.parse('Mon Jan 11 06:00:00 PST 1999'),
|
433
|
-
Time.parse('Tue Jan 12 06:00:00 PST 1999'),
|
434
|
-
Time.parse('Wed Jan 13 06:00:00 PST 1999'),
|
435
|
-
Time.parse('Thu Jan 14 06:00:00 PST 1999'),
|
436
|
-
Time.parse('Fri Jan 15 06:00:00 PST 1999'),
|
437
|
-
Time.parse('Sat Jan 16 06:00:00 PST 1999'),
|
438
|
-
Time.parse('Sun Jan 17 06:00:00 PST 1999'),
|
439
|
-
Time.parse('Mon Jan 18 06:00:00 PST 1999'),
|
440
|
-
Time.parse('Tue Jan 19 06:00:00 PST 1999'),
|
441
|
-
Time.parse('Wed Jan 20 06:00:00 PST 1999'),
|
442
|
-
Time.parse('Thu Jan 21 06:00:00 PST 1999'),
|
443
|
-
Time.parse('Fri Jan 22 06:00:00 PST 1999'),
|
444
|
-
Time.parse('Sat Jan 23 06:00:00 PST 1999'),
|
445
|
-
Time.parse('Sun Jan 24 06:00:00 PST 1999'),
|
446
|
-
Time.parse('Mon Jan 25 06:00:00 PST 1999'),
|
447
|
-
Time.parse('Tue Jan 26 06:00:00 PST 1999'),
|
448
|
-
Time.parse('Wed Jan 27 06:00:00 PST 1999'),
|
449
|
-
Time.parse('Thu Jan 28 06:00:00 PST 1999'),
|
450
|
-
Time.parse('Fri Jan 29 06:00:00 PST 1999'),
|
451
|
-
Time.parse('Sat Jan 30 06:00:00 PST 1999'),
|
452
|
-
Time.parse('Sun Jan 31 06:00:00 PST 1999'),
|
453
|
-
Time.parse('Sat Jan 1 06:00:00 PST 2000'),
|
454
|
-
Time.parse('Sun Jan 2 06:00:00 PST 2000'),
|
455
|
-
Time.parse('Mon Jan 3 06:00:00 PST 2000'),
|
456
|
-
Time.parse('Tue Jan 4 06:00:00 PST 2000'),
|
457
|
-
Time.parse('Wed Jan 5 06:00:00 PST 2000'),
|
458
|
-
Time.parse('Thu Jan 6 06:00:00 PST 2000'),
|
459
|
-
Time.parse('Fri Jan 7 06:00:00 PST 2000'),
|
460
|
-
Time.parse('Sat Jan 8 06:00:00 PST 2000'),
|
461
|
-
Time.parse('Sun Jan 9 06:00:00 PST 2000'),
|
462
|
-
Time.parse('Mon Jan 10 06:00:00 PST 2000'),
|
463
|
-
Time.parse('Tue Jan 11 06:00:00 PST 2000'),
|
464
|
-
Time.parse('Wed Jan 12 06:00:00 PST 2000'),
|
465
|
-
Time.parse('Thu Jan 13 06:00:00 PST 2000'),
|
466
|
-
Time.parse('Fri Jan 14 06:00:00 PST 2000'),
|
467
|
-
Time.parse('Sat Jan 15 06:00:00 PST 2000'),
|
468
|
-
Time.parse('Sun Jan 16 06:00:00 PST 2000'),
|
469
|
-
Time.parse('Mon Jan 17 06:00:00 PST 2000'),
|
470
|
-
Time.parse('Tue Jan 18 06:00:00 PST 2000'),
|
471
|
-
Time.parse('Wed Jan 19 06:00:00 PST 2000'),
|
472
|
-
Time.parse('Thu Jan 20 06:00:00 PST 2000'),
|
473
|
-
Time.parse('Fri Jan 21 06:00:00 PST 2000'),
|
474
|
-
Time.parse('Sat Jan 22 06:00:00 PST 2000'),
|
475
|
-
Time.parse('Sun Jan 23 06:00:00 PST 2000'),
|
476
|
-
Time.parse('Mon Jan 24 06:00:00 PST 2000'),
|
477
|
-
Time.parse('Tue Jan 25 06:00:00 PST 2000'),
|
478
|
-
Time.parse('Wed Jan 26 06:00:00 PST 2000'),
|
479
|
-
Time.parse('Thu Jan 27 06:00:00 PST 2000'),
|
480
|
-
Time.parse('Fri Jan 28 06:00:00 PST 2000'),
|
481
|
-
Time.parse('Sat Jan 29 06:00:00 PST 2000'),
|
482
|
-
Time.parse('Sun Jan 30 06:00:00 PST 2000'),
|
483
|
-
Time.parse('Mon Jan 31 06:00:00 PST 2000')
|
484
|
-
])
|
485
|
-
end
|
486
|
-
|
487
|
-
it 'returns the correct result with an rrule of FREQ=WEEKLY;COUNT=10' do
|
488
|
-
rrule = 'FREQ=WEEKLY;COUNT=10'
|
489
|
-
dtstart = Time.parse('Tue Sep 2 06:00:00 PDT 1997')
|
490
|
-
timezone = 'America/New_York'
|
491
|
-
|
492
|
-
rrule = RRule::Rule.new(rrule, dtstart: dtstart, tzid: timezone)
|
493
|
-
expect(rrule.all).to match_array([
|
494
|
-
Time.parse('Tue Sep 2 06:00:00 PDT 1997'),
|
495
|
-
Time.parse('Tue Sep 9 06:00:00 PDT 1997'),
|
496
|
-
Time.parse('Tue Sep 16 06:00:00 PDT 1997'),
|
497
|
-
Time.parse('Tue Sep 23 06:00:00 PDT 1997'),
|
498
|
-
Time.parse('Tue Sep 30 06:00:00 PDT 1997'),
|
499
|
-
Time.parse('Tue Oct 7 06:00:00 PDT 1997'),
|
500
|
-
Time.parse('Tue Oct 14 06:00:00 PDT 1997'),
|
501
|
-
Time.parse('Tue Oct 21 06:00:00 PDT 1997'),
|
502
|
-
Time.parse('Tue Oct 28 06:00:00 PST 1997'),
|
503
|
-
Time.parse('Tue Nov 4 06:00:00 PST 1997')
|
504
|
-
])
|
505
|
-
end
|
506
|
-
|
507
|
-
it 'returns the correct result with an rrule of FREQ=WEEKLY;UNTIL=19971224T000000Z' do
|
508
|
-
rrule = 'FREQ=WEEKLY;UNTIL=19971224T000000Z'
|
509
|
-
dtstart = Time.parse('Tue Sep 2 06:00:00 PDT 1997')
|
510
|
-
timezone = 'America/New_York'
|
511
|
-
|
512
|
-
rrule = RRule::Rule.new(rrule, dtstart: dtstart, tzid: timezone)
|
513
|
-
expect(rrule.all).to match_array([
|
514
|
-
Time.parse('Tue Sep 2 06:00:00 PDT 1997'),
|
515
|
-
Time.parse('Tue Sep 9 06:00:00 PDT 1997'),
|
516
|
-
Time.parse('Tue Sep 16 06:00:00 PDT 1997'),
|
517
|
-
Time.parse('Tue Sep 23 06:00:00 PDT 1997'),
|
518
|
-
Time.parse('Tue Sep 30 06:00:00 PDT 1997'),
|
519
|
-
Time.parse('Tue Oct 7 06:00:00 PDT 1997'),
|
520
|
-
Time.parse('Tue Oct 14 06:00:00 PDT 1997'),
|
521
|
-
Time.parse('Tue Oct 21 06:00:00 PDT 1997'),
|
522
|
-
Time.parse('Tue Oct 28 06:00:00 PST 1997'),
|
523
|
-
Time.parse('Tue Nov 4 06:00:00 PST 1997'),
|
524
|
-
Time.parse('Tue Nov 11 06:00:00 PST 1997'),
|
525
|
-
Time.parse('Tue Nov 18 06:00:00 PST 1997'),
|
526
|
-
Time.parse('Tue Nov 25 06:00:00 PST 1997'),
|
527
|
-
Time.parse('Tue Dec 2 06:00:00 PST 1997'),
|
528
|
-
Time.parse('Tue Dec 9 06:00:00 PST 1997'),
|
529
|
-
Time.parse('Tue Dec 16 06:00:00 PST 1997'),
|
530
|
-
Time.parse('Tue Dec 23 06:00:00 PST 1997')
|
531
|
-
])
|
532
|
-
end
|
533
|
-
|
534
|
-
it 'returns the correct result with an rrule of FREQ=WEEKLY;UNTIL=19971007T000000Z;WKST=SU;BYDAY=TU,TH' do
|
535
|
-
rrule = 'FREQ=WEEKLY;UNTIL=19971007T000000Z;WKST=SU;BYDAY=TU,TH'
|
536
|
-
dtstart = Time.parse('Tue Sep 2 06:00:00 PDT 1997')
|
537
|
-
timezone = 'America/New_York'
|
538
|
-
|
539
|
-
rrule = RRule::Rule.new(rrule, dtstart: dtstart, tzid: timezone)
|
540
|
-
expect(rrule.all).to match_array([
|
541
|
-
Time.parse('Tue Sep 2 06:00:00 PDT 1997'),
|
542
|
-
Time.parse('Thu Sep 4 06:00:00 PDT 1997'),
|
543
|
-
Time.parse('Tue Sep 9 06:00:00 PDT 1997'),
|
544
|
-
Time.parse('Thu Sep 11 06:00:00 PDT 1997'),
|
545
|
-
Time.parse('Tue Sep 16 06:00:00 PDT 1997'),
|
546
|
-
Time.parse('Thu Sep 18 06:00:00 PDT 1997'),
|
547
|
-
Time.parse('Tue Sep 23 06:00:00 PDT 1997'),
|
548
|
-
Time.parse('Thu Sep 25 06:00:00 PDT 1997'),
|
549
|
-
Time.parse('Tue Sep 30 06:00:00 PDT 1997'),
|
550
|
-
Time.parse('Thu Oct 2 06:00:00 PDT 1997')
|
551
|
-
])
|
552
|
-
end
|
553
|
-
|
554
|
-
it 'returns the correct result with an rrule of FREQ=WEEKLY;COUNT=10;WKST=SU;BYDAY=TU,TH' do
|
555
|
-
rrule = 'FREQ=WEEKLY;COUNT=10;WKST=SU;BYDAY=TU,TH'
|
556
|
-
dtstart = Time.parse('Tue Sep 2 06:00:00 PDT 1997')
|
557
|
-
timezone = 'America/New_York'
|
558
|
-
|
559
|
-
rrule = RRule::Rule.new(rrule, dtstart: dtstart, tzid: timezone)
|
560
|
-
expect(rrule.all).to match_array([
|
561
|
-
Time.parse('Tue Sep 2 06:00:00 PDT 1997'),
|
562
|
-
Time.parse('Thu Sep 4 06:00:00 PDT 1997'),
|
563
|
-
Time.parse('Tue Sep 9 06:00:00 PDT 1997'),
|
564
|
-
Time.parse('Thu Sep 11 06:00:00 PDT 1997'),
|
565
|
-
Time.parse('Tue Sep 16 06:00:00 PDT 1997'),
|
566
|
-
Time.parse('Thu Sep 18 06:00:00 PDT 1997'),
|
567
|
-
Time.parse('Tue Sep 23 06:00:00 PDT 1997'),
|
568
|
-
Time.parse('Thu Sep 25 06:00:00 PDT 1997'),
|
569
|
-
Time.parse('Tue Sep 30 06:00:00 PDT 1997'),
|
570
|
-
Time.parse('Thu Oct 2 06:00:00 PDT 1997')
|
571
|
-
])
|
572
|
-
end
|
573
|
-
|
574
|
-
it 'returns the correct result with an rrule of FREQ=WEEKLY;INTERVAL=2;UNTIL=19971224T000000Z;WKST=SU;BYDAY=MO,WE,FR' do
|
575
|
-
rrule = 'FREQ=WEEKLY;INTERVAL=2;UNTIL=19971224T000000Z;WKST=SU;BYDAY=MO,WE,FR'
|
576
|
-
dtstart = Time.parse('Mon Sep 1 06:00:00 PDT 1997')
|
577
|
-
timezone = 'America/New_York'
|
578
|
-
|
579
|
-
rrule = RRule::Rule.new(rrule, dtstart: dtstart, tzid: timezone)
|
580
|
-
expect(rrule.all).to match_array([
|
581
|
-
Time.parse('Mon Sep 1 06:00:00 PDT 1997'),
|
582
|
-
Time.parse('Wed Sep 3 06:00:00 PDT 1997'),
|
583
|
-
Time.parse('Fri Sep 5 06:00:00 PDT 1997'),
|
584
|
-
Time.parse('Mon Sep 15 06:00:00 PDT 1997'),
|
585
|
-
Time.parse('Wed Sep 17 06:00:00 PDT 1997'),
|
586
|
-
Time.parse('Fri Sep 19 06:00:00 PDT 1997'),
|
587
|
-
Time.parse('Mon Sep 29 06:00:00 PDT 1997'),
|
588
|
-
Time.parse('Wed Oct 1 06:00:00 PDT 1997'),
|
589
|
-
Time.parse('Fri Oct 3 06:00:00 PDT 1997'),
|
590
|
-
Time.parse('Mon Oct 13 06:00:00 PDT 1997'),
|
591
|
-
Time.parse('Wed Oct 15 06:00:00 PDT 1997'),
|
592
|
-
Time.parse('Fri Oct 17 06:00:00 PDT 1997'),
|
593
|
-
Time.parse('Mon Oct 27 06:00:00 PST 1997'),
|
594
|
-
Time.parse('Wed Oct 29 06:00:00 PST 1997'),
|
595
|
-
Time.parse('Fri Oct 31 06:00:00 PST 1997'),
|
596
|
-
Time.parse('Mon Nov 10 06:00:00 PST 1997'),
|
597
|
-
Time.parse('Wed Nov 12 06:00:00 PST 1997'),
|
598
|
-
Time.parse('Fri Nov 14 06:00:00 PST 1997'),
|
599
|
-
Time.parse('Mon Nov 24 06:00:00 PST 1997'),
|
600
|
-
Time.parse('Wed Nov 26 06:00:00 PST 1997'),
|
601
|
-
Time.parse('Fri Nov 28 06:00:00 PST 1997'),
|
602
|
-
Time.parse('Mon Dec 8 06:00:00 PST 1997'),
|
603
|
-
Time.parse('Wed Dec 10 06:00:00 PST 1997'),
|
604
|
-
Time.parse('Fri Dec 12 06:00:00 PST 1997'),
|
605
|
-
Time.parse('Mon Dec 22 06:00:00 PST 1997')
|
606
|
-
])
|
607
|
-
end
|
608
|
-
|
609
|
-
it 'returns the correct result with an rrule of FREQ=WEEKLY;INTERVAL=2;COUNT=8;WKST=SU;BYDAY=TU,TH' do
|
610
|
-
rrule = 'FREQ=WEEKLY;INTERVAL=2;COUNT=8;WKST=SU;BYDAY=TU,TH'
|
611
|
-
dtstart = Time.parse('Tue Sep 2 06:00:00 PDT 1997')
|
612
|
-
timezone = 'America/New_York'
|
613
|
-
|
614
|
-
rrule = RRule::Rule.new(rrule, dtstart: dtstart, tzid: timezone)
|
615
|
-
expect(rrule.all).to match_array([
|
616
|
-
Time.parse('Tue Sep 2 06:00:00 PDT 1997'),
|
617
|
-
Time.parse('Thu Sep 4 06:00:00 PDT 1997'),
|
618
|
-
Time.parse('Tue Sep 16 06:00:00 PDT 1997'),
|
619
|
-
Time.parse('Thu Sep 18 06:00:00 PDT 1997'),
|
620
|
-
Time.parse('Tue Sep 30 06:00:00 PDT 1997'),
|
621
|
-
Time.parse('Thu Oct 2 06:00:00 PDT 1997'),
|
622
|
-
Time.parse('Tue Oct 14 06:00:00 PDT 1997'),
|
623
|
-
Time.parse('Thu Oct 16 06:00:00 PDT 1997')
|
624
|
-
])
|
625
|
-
end
|
626
|
-
|
627
|
-
it 'returns the correct result with an rrule of FREQ=MONTHLY;COUNT=10;BYDAY=1FR' do
|
628
|
-
rrule = 'FREQ=MONTHLY;COUNT=10;BYDAY=1FR'
|
629
|
-
dtstart = Time.parse('Fri Sep 5 06:00:00 PDT 1997')
|
630
|
-
timezone = 'America/New_York'
|
631
|
-
|
632
|
-
rrule = RRule::Rule.new(rrule, dtstart: dtstart, tzid: timezone)
|
633
|
-
expect(rrule.all).to match_array([
|
634
|
-
Time.parse('Fri Sep 5 06:00:00 PDT 1997'),
|
635
|
-
Time.parse('Fri Oct 3 06:00:00 PDT 1997'),
|
636
|
-
Time.parse('Fri Nov 7 06:00:00 PST 1997'),
|
637
|
-
Time.parse('Fri Dec 5 06:00:00 PST 1997'),
|
638
|
-
Time.parse('Fri Jan 2 06:00:00 PST 1998'),
|
639
|
-
Time.parse('Fri Feb 6 06:00:00 PST 1998'),
|
640
|
-
Time.parse('Fri Mar 6 06:00:00 PST 1998'),
|
641
|
-
Time.parse('Fri Apr 3 06:00:00 PST 1998'),
|
642
|
-
Time.parse('Fri May 1 06:00:00 PDT 1998'),
|
643
|
-
Time.parse('Fri Jun 5 06:00:00 PDT 1998')
|
644
|
-
])
|
645
|
-
end
|
646
|
-
|
647
|
-
it 'returns the correct result with an rrule of FREQ=MONTHLY;UNTIL=19971224T000000Z;BYDAY=1FR' do
|
648
|
-
rrule = 'FREQ=MONTHLY;UNTIL=19971224T000000Z;BYDAY=1FR'
|
649
|
-
dtstart = Time.parse('Fri Sep 5 06:00:00 PDT 1997')
|
650
|
-
timezone = 'America/New_York'
|
651
|
-
|
652
|
-
rrule = RRule::Rule.new(rrule, dtstart: dtstart, tzid: timezone)
|
653
|
-
expect(rrule.all).to match_array([
|
654
|
-
Time.parse('Fri Sep 5 06:00:00 PDT 1997'),
|
655
|
-
Time.parse('Fri Oct 3 06:00:00 PDT 1997'),
|
656
|
-
Time.parse('Fri Nov 7 06:00:00 PST 1997'),
|
657
|
-
Time.parse('Fri Dec 5 06:00:00 PST 1997')
|
658
|
-
])
|
659
|
-
end
|
660
|
-
|
661
|
-
it 'returns the correct result with an rrule of FREQ=MONTHLY;INTERVAL=2;COUNT=10;BYDAY=1SU,-1SU' do
|
662
|
-
rrule = 'FREQ=MONTHLY;INTERVAL=2;COUNT=10;BYDAY=1SU,-1SU'
|
663
|
-
dtstart = Time.parse('Sun Sep 7 06:00:00 PDT 1997')
|
664
|
-
timezone = 'America/New_York'
|
665
|
-
|
666
|
-
rrule = RRule::Rule.new(rrule, dtstart: dtstart, tzid: timezone)
|
667
|
-
expect(rrule.all).to match_array([
|
668
|
-
Time.parse('Sun Sep 7 06:00:00 PDT 1997'),
|
669
|
-
Time.parse('Sun Sep 28 06:00:00 PDT 1997'),
|
670
|
-
Time.parse('Sun Nov 2 06:00:00 PST 1997'),
|
671
|
-
Time.parse('Sun Nov 30 06:00:00 PST 1997'),
|
672
|
-
Time.parse('Sun Jan 4 06:00:00 PST 1998'),
|
673
|
-
Time.parse('Sun Jan 25 06:00:00 PST 1998'),
|
674
|
-
Time.parse('Sun Mar 1 06:00:00 PST 1998'),
|
675
|
-
Time.parse('Sun Mar 29 06:00:00 PST 1998'),
|
676
|
-
Time.parse('Sun May 3 06:00:00 PDT 1998'),
|
677
|
-
Time.parse('Sun May 31 06:00:00 PDT 1998')
|
678
|
-
])
|
679
|
-
end
|
680
|
-
|
681
|
-
it 'returns the correct result with an rrule of FREQ=MONTHLY;COUNT=6;BYDAY=-2MO' do
|
682
|
-
rrule = 'FREQ=MONTHLY;COUNT=6;BYDAY=-2MO'
|
683
|
-
dtstart = Time.parse('Mon Sep 22 06:00:00 PDT 1997')
|
684
|
-
timezone = 'America/New_York'
|
685
|
-
|
686
|
-
rrule = RRule::Rule.new(rrule, dtstart: dtstart, tzid: timezone)
|
687
|
-
expect(rrule.all).to match_array([
|
688
|
-
Time.parse('Mon Sep 22 06:00:00 PDT 1997'),
|
689
|
-
Time.parse('Mon Oct 20 06:00:00 PDT 1997'),
|
690
|
-
Time.parse('Mon Nov 17 06:00:00 PST 1997'),
|
691
|
-
Time.parse('Mon Dec 22 06:00:00 PST 1997'),
|
692
|
-
Time.parse('Mon Jan 19 06:00:00 PST 1998'),
|
693
|
-
Time.parse('Mon Feb 16 06:00:00 PST 1998')
|
694
|
-
])
|
695
|
-
end
|
696
|
-
|
697
|
-
it 'returns the correct result with an rrule of FREQ=MONTHLY;COUNT=10;BYMONTHDAY=2,15' do
|
698
|
-
rrule = 'FREQ=MONTHLY;COUNT=10;BYMONTHDAY=2,15'
|
699
|
-
dtstart = Time.parse('Tue Sep 2 06:00:00 PDT 1997')
|
700
|
-
timezone = 'America/New_York'
|
701
|
-
|
702
|
-
rrule = RRule::Rule.new(rrule, dtstart: dtstart, tzid: timezone)
|
703
|
-
expect(rrule.all).to match_array([
|
704
|
-
Time.parse('Tue Sep 2 06:00:00 PDT 1997'),
|
705
|
-
Time.parse('Mon Sep 15 06:00:00 PDT 1997'),
|
706
|
-
Time.parse('Thu Oct 2 06:00:00 PDT 1997'),
|
707
|
-
Time.parse('Wed Oct 15 06:00:00 PDT 1997'),
|
708
|
-
Time.parse('Sun Nov 2 06:00:00 PST 1997'),
|
709
|
-
Time.parse('Sat Nov 15 06:00:00 PST 1997'),
|
710
|
-
Time.parse('Tue Dec 2 06:00:00 PST 1997'),
|
711
|
-
Time.parse('Mon Dec 15 06:00:00 PST 1997'),
|
712
|
-
Time.parse('Fri Jan 2 06:00:00 PST 1998'),
|
713
|
-
Time.parse('Thu Jan 15 06:00:00 PST 1998')
|
714
|
-
])
|
715
|
-
end
|
716
|
-
|
717
|
-
it 'returns the correct result with an rrule of FREQ=MONTHLY;COUNT=10;BYMONTHDAY=1,-1' do
|
718
|
-
rrule = 'FREQ=MONTHLY;COUNT=10;BYMONTHDAY=1,-1'
|
719
|
-
dtstart = Time.parse('Tue Sep 30 06:00:00 PDT 1997')
|
720
|
-
timezone = 'America/New_York'
|
721
|
-
|
722
|
-
rrule = RRule::Rule.new(rrule, dtstart: dtstart, tzid: timezone)
|
723
|
-
expect(rrule.all).to match_array([
|
724
|
-
Time.parse('Tue Sep 30 06:00:00 PDT 1997'),
|
725
|
-
Time.parse('Wed Oct 1 06:00:00 PDT 1997'),
|
726
|
-
Time.parse('Fri Oct 31 06:00:00 PST 1997'),
|
727
|
-
Time.parse('Sat Nov 1 06:00:00 PST 1997'),
|
728
|
-
Time.parse('Sun Nov 30 06:00:00 PST 1997'),
|
729
|
-
Time.parse('Mon Dec 1 06:00:00 PST 1997'),
|
730
|
-
Time.parse('Wed Dec 31 06:00:00 PST 1997'),
|
731
|
-
Time.parse('Thu Jan 1 06:00:00 PST 1998'),
|
732
|
-
Time.parse('Sat Jan 31 06:00:00 PST 1998'),
|
733
|
-
Time.parse('Sun Feb 1 06:00:00 PST 1998')
|
734
|
-
])
|
735
|
-
end
|
736
|
-
|
737
|
-
it 'returns the correct result with an rrule of FREQ=MONTHLY;INTERVAL=18;COUNT=10;BYMONTHDAY=10,11,12,13,14,15' do
|
738
|
-
rrule = 'FREQ=MONTHLY;INTERVAL=18;COUNT=10;BYMONTHDAY=10,11,12,13,14,15'
|
739
|
-
dtstart = Time.parse('Wed Sep 10 06:00:00 PDT 1997')
|
740
|
-
timezone = 'America/New_York'
|
741
|
-
|
742
|
-
rrule = RRule::Rule.new(rrule, dtstart: dtstart, tzid: timezone)
|
743
|
-
expect(rrule.all).to match_array([
|
744
|
-
Time.parse('Wed Sep 10 06:00:00 PDT 1997'),
|
745
|
-
Time.parse('Thu Sep 11 06:00:00 PDT 1997'),
|
746
|
-
Time.parse('Fri Sep 12 06:00:00 PDT 1997'),
|
747
|
-
Time.parse('Sat Sep 13 06:00:00 PDT 1997'),
|
748
|
-
Time.parse('Sun Sep 14 06:00:00 PDT 1997'),
|
749
|
-
Time.parse('Mon Sep 15 06:00:00 PDT 1997'),
|
750
|
-
Time.parse('Wed Mar 10 06:00:00 PST 1999'),
|
751
|
-
Time.parse('Thu Mar 11 06:00:00 PST 1999'),
|
752
|
-
Time.parse('Fri Mar 12 06:00:00 PST 1999'),
|
753
|
-
Time.parse('Sat Mar 13 06:00:00 PST 1999')
|
754
|
-
])
|
755
|
-
end
|
756
|
-
|
757
|
-
it 'returns the correct result with an rrule of FREQ=YEARLY;COUNT=10;BYMONTH=6,7' do
|
758
|
-
rrule = 'FREQ=YEARLY;COUNT=10;BYMONTH=6,7'
|
759
|
-
dtstart = Time.parse('Tue Jun 10 06:00:00 PDT 1997')
|
760
|
-
timezone = 'America/New_York'
|
761
|
-
|
762
|
-
rrule = RRule::Rule.new(rrule, dtstart: dtstart, tzid: timezone)
|
763
|
-
expect(rrule.all).to match_array([
|
764
|
-
Time.parse('Tue Jun 10 06:00:00 PDT 1997'),
|
765
|
-
Time.parse('Thu Jul 10 06:00:00 PDT 1997'),
|
766
|
-
Time.parse('Wed Jun 10 06:00:00 PDT 1998'),
|
767
|
-
Time.parse('Fri Jul 10 06:00:00 PDT 1998'),
|
768
|
-
Time.parse('Thu Jun 10 06:00:00 PDT 1999'),
|
769
|
-
Time.parse('Sat Jul 10 06:00:00 PDT 1999'),
|
770
|
-
Time.parse('Sat Jun 10 06:00:00 PDT 2000'),
|
771
|
-
Time.parse('Mon Jul 10 06:00:00 PDT 2000'),
|
772
|
-
Time.parse('Sun Jun 10 06:00:00 PDT 2001'),
|
773
|
-
Time.parse('Tue Jul 10 06:00:00 PDT 2001')
|
774
|
-
])
|
775
|
-
end
|
776
|
-
|
777
|
-
it 'returns the correct result with an rrule of FREQ=YEARLY;INTERVAL=2;COUNT=10;BYMONTH=1,2,3' do
|
778
|
-
rrule = 'FREQ=YEARLY;INTERVAL=2;COUNT=10;BYMONTH=1,2,3'
|
779
|
-
dtstart = Time.parse('Mon Mar 10 06:00:00 PST 1997')
|
780
|
-
timezone = 'America/New_York'
|
781
|
-
|
782
|
-
rrule = RRule::Rule.new(rrule, dtstart: dtstart, tzid: timezone)
|
783
|
-
expect(rrule.all).to match_array([
|
784
|
-
Time.parse('Mon Mar 10 06:00:00 PST 1997'),
|
785
|
-
Time.parse('Sun Jan 10 06:00:00 PST 1999'),
|
786
|
-
Time.parse('Wed Feb 10 06:00:00 PST 1999'),
|
787
|
-
Time.parse('Wed Mar 10 06:00:00 PST 1999'),
|
788
|
-
Time.parse('Wed Jan 10 06:00:00 PST 2001'),
|
789
|
-
Time.parse('Sat Feb 10 06:00:00 PST 2001'),
|
790
|
-
Time.parse('Sat Mar 10 06:00:00 PST 2001'),
|
791
|
-
Time.parse('Fri Jan 10 06:00:00 PST 2003'),
|
792
|
-
Time.parse('Mon Feb 10 06:00:00 PST 2003'),
|
793
|
-
Time.parse('Mon Mar 10 06:00:00 PST 2003')
|
794
|
-
])
|
795
|
-
end
|
796
|
-
|
797
|
-
it 'returns the correct result with an rrule of FREQ=YEARLY;INTERVAL=3;COUNT=10;BYYEARDAY=1,100,200' do
|
798
|
-
rrule = 'FREQ=YEARLY;INTERVAL=3;COUNT=10;BYYEARDAY=1,100,200'
|
799
|
-
dtstart = Time.parse('Wed Jan 1 06:00:00 PST 1997')
|
800
|
-
timezone = 'America/New_York'
|
801
|
-
|
802
|
-
rrule = RRule::Rule.new(rrule, dtstart: dtstart, tzid: timezone)
|
803
|
-
expect(rrule.all).to match_array([
|
804
|
-
Time.parse('Wed Jan 1 06:00:00 PST 1997'),
|
805
|
-
Time.parse('Thu Apr 10 06:00:00 PDT 1997'),
|
806
|
-
Time.parse('Sat Jul 19 06:00:00 PDT 1997'),
|
807
|
-
Time.parse('Sat Jan 1 06:00:00 PST 2000'),
|
808
|
-
Time.parse('Sun Apr 9 06:00:00 PDT 2000'),
|
809
|
-
Time.parse('Tue Jul 18 06:00:00 PDT 2000'),
|
810
|
-
Time.parse('Wed Jan 1 06:00:00 PST 2003'),
|
811
|
-
Time.parse('Thu Apr 10 06:00:00 PDT 2003'),
|
812
|
-
Time.parse('Sat Jul 19 06:00:00 PDT 2003'),
|
813
|
-
Time.parse('Sun Jan 1 06:00:00 PST 2006')
|
814
|
-
])
|
815
|
-
end
|
816
|
-
|
817
|
-
it 'returns the correct result with an rrule of FREQ=MONTHLY;BYDAY=FR;BYMONTHDAY=13;COUNT=6' do
|
818
|
-
rrule = 'FREQ=MONTHLY;BYDAY=FR;BYMONTHDAY=13;COUNT=6'
|
819
|
-
dtstart = Time.parse('Tue Sep 2 06:00:00 PDT 1997')
|
820
|
-
timezone = 'America/New_York'
|
821
|
-
|
822
|
-
rrule = RRule::Rule.new(rrule, dtstart: dtstart, tzid: timezone)
|
823
|
-
expect(rrule.all).to match_array([
|
824
|
-
Time.parse('Fri Feb 13 06:00:00 PST 1998'),
|
825
|
-
Time.parse('Fri Mar 13 06:00:00 PST 1998'),
|
826
|
-
Time.parse('Fri Nov 13 06:00:00 PST 1998'),
|
827
|
-
Time.parse('Fri Aug 13 06:00:00 PDT 1999'),
|
828
|
-
Time.parse('Fri Oct 13 06:00:00 PDT 2000'),
|
829
|
-
Time.parse('Fri Apr 13 06:00:00 PDT 2001')
|
830
|
-
])
|
831
|
-
end
|
832
|
-
|
833
|
-
it 'returns the correct result with an rrule of FREQ=MONTHLY;COUNT=3;BYDAY=TU,WE,TH;BYSETPOS=3' do
|
834
|
-
rrule = 'FREQ=MONTHLY;COUNT=3;BYDAY=TU,WE,TH;BYSETPOS=3'
|
835
|
-
dtstart = Time.parse('Thu Sep 4 06:00:00 PDT 1997')
|
836
|
-
timezone = 'America/New_York'
|
837
|
-
|
838
|
-
rrule = RRule::Rule.new(rrule, dtstart: dtstart, tzid: timezone)
|
839
|
-
expect(rrule.all).to match_array([
|
840
|
-
Time.parse('Thu Sep 4 06:00:00 PDT 1997'),
|
841
|
-
Time.parse('Tue Oct 7 06:00:00 PDT 1997'),
|
842
|
-
Time.parse('Thu Nov 6 06:00:00 PST 1997')
|
843
|
-
])
|
844
|
-
end
|
845
|
-
|
846
|
-
it 'returns the correct result with an rrule of FREQ=WEEKLY;INTERVAL=2;COUNT=4;BYDAY=TU,SU;WKST=MO' do
|
847
|
-
rrule = 'FREQ=WEEKLY;INTERVAL=2;COUNT=4;BYDAY=TU,SU;WKST=MO'
|
848
|
-
dtstart = Time.parse('Tue Aug 5 06:00:00 PDT 1997')
|
849
|
-
timezone = 'America/New_York'
|
850
|
-
|
851
|
-
rrule = RRule::Rule.new(rrule, dtstart: dtstart, tzid: timezone)
|
852
|
-
expect(rrule.all).to match_array([
|
853
|
-
Time.parse('Tue Aug 5 06:00:00 PDT 1997'),
|
854
|
-
Time.parse('Sun Aug 10 06:00:00 PDT 1997'),
|
855
|
-
Time.parse('Tue Aug 19 06:00:00 PDT 1997'),
|
856
|
-
Time.parse('Sun Aug 24 06:00:00 PDT 1997')
|
857
|
-
])
|
858
|
-
end
|
859
|
-
|
860
|
-
it 'returns the correct result with an rrule of FREQ=WEEKLY;INTERVAL=2;COUNT=4;BYDAY=TU,SU;WKST=SU' do
|
861
|
-
rrule = 'FREQ=WEEKLY;INTERVAL=2;COUNT=4;BYDAY=TU,SU;WKST=SU'
|
862
|
-
dtstart = Time.parse('Tue Aug 5 06:00:00 PDT 1997')
|
863
|
-
timezone = 'America/New_York'
|
864
|
-
|
865
|
-
rrule = RRule::Rule.new(rrule, dtstart: dtstart, tzid: timezone)
|
866
|
-
expect(rrule.all).to match_array([
|
867
|
-
Time.parse('Tue Aug 5 06:00:00 PDT 1997'),
|
868
|
-
Time.parse('Sun Aug 17 06:00:00 PDT 1997'),
|
869
|
-
Time.parse('Tue Aug 19 06:00:00 PDT 1997'),
|
870
|
-
Time.parse('Sun Aug 31 06:00:00 PDT 1997')
|
871
|
-
])
|
872
|
-
end
|
873
|
-
|
874
|
-
it 'returns the correct result with an rrule of FREQ=MONTHLY;BYMONTHDAY=15,30;COUNT=5' do
|
875
|
-
rrule = 'FREQ=MONTHLY;BYMONTHDAY=15,30;COUNT=5'
|
876
|
-
dtstart = Time.parse('Mon Jan 15 06:00:00 PST 2007')
|
877
|
-
timezone = 'America/New_York'
|
878
|
-
|
879
|
-
rrule = RRule::Rule.new(rrule, dtstart: dtstart, tzid: timezone)
|
880
|
-
expect(rrule.all).to match_array([
|
881
|
-
Time.parse('Mon Jan 15 06:00:00 PST 2007'),
|
882
|
-
Time.parse('Tue Jan 30 06:00:00 PST 2007'),
|
883
|
-
Time.parse('Thu Feb 15 06:00:00 PST 2007'),
|
884
|
-
Time.parse('Thu Mar 15 06:00:00 PDT 2007'),
|
885
|
-
Time.parse('Fri Mar 30 06:00:00 PDT 2007')
|
886
|
-
])
|
887
|
-
end
|
888
|
-
|
889
|
-
it 'returns the correct result with an rrule of FREQ=DAILY;COUNT=3' do
|
890
|
-
rrule = 'FREQ=DAILY;COUNT=3'
|
891
|
-
dtstart = Time.parse('Tue Sep 2 09:00:00 PDT 1997')
|
892
|
-
timezone = 'America/Los_Angeles'
|
893
|
-
|
894
|
-
rrule = RRule::Rule.new(rrule, dtstart: dtstart, tzid: timezone)
|
895
|
-
expect(rrule.all).to match_array([
|
896
|
-
Time.parse('Tue Sep 2 09:00:00 PDT 1997'),
|
897
|
-
Time.parse('Wed Sep 3 09:00:00 PDT 1997'),
|
898
|
-
Time.parse('Thu Sep 4 09:00:00 PDT 1997')
|
899
|
-
])
|
900
|
-
end
|
901
|
-
|
902
|
-
it 'returns the correct result with an rrule of FREQ=DAILY;BYMONTH=1,3;COUNT=4' do
|
903
|
-
rrule = 'FREQ=DAILY;BYMONTH=1,3;COUNT=4'
|
904
|
-
dtstart = Time.parse('Tue Sep 2 09:00:00 PDT 1997')
|
905
|
-
timezone = 'America/Los_Angeles'
|
906
|
-
|
907
|
-
rrule = RRule::Rule.new(rrule, dtstart: dtstart, tzid: timezone)
|
908
|
-
expect(rrule.all).to match_array([
|
909
|
-
Time.parse('Thu Jan 1 09:00:00 PST 1998'),
|
910
|
-
Time.parse('Fri Jan 2 09:00:00 PST 1998'),
|
911
|
-
Time.parse('Sat Jan 3 09:00:00 PST 1998'),
|
912
|
-
Time.parse('Sun Jan 4 09:00:00 PST 1998')
|
913
|
-
])
|
914
|
-
end
|
915
|
-
|
916
|
-
it 'returns the correct result with an rrule of FREQ=DAILY;BYMONTH=1,3;COUNT=4;BYMONTHDAY=5,7' do
|
917
|
-
rrule = 'FREQ=DAILY;BYMONTH=1,3;COUNT=4;BYMONTHDAY=5,7'
|
918
|
-
dtstart = Time.parse('Tue Sep 2 09:00:00 PDT 1997')
|
919
|
-
timezone = 'America/Los_Angeles'
|
920
|
-
|
921
|
-
rrule = RRule::Rule.new(rrule, dtstart: dtstart, tzid: timezone)
|
922
|
-
expect(rrule.all).to match_array([
|
923
|
-
Time.parse('Mon Jan 5 09:00:00 PST 1998'),
|
924
|
-
Time.parse('Wed Jan 7 09:00:00 PST 1998'),
|
925
|
-
Time.parse('Thu Mar 5 09:00:00 PST 1998'),
|
926
|
-
Time.parse('Sat Mar 7 09:00:00 PST 1998')
|
927
|
-
])
|
928
|
-
end
|
929
|
-
|
930
|
-
it 'returns the correct result with an rrule of FREQ=DAILY;BYMONTH=1,3;COUNT=4;BYDAY=TU,TH;BYMONTHDAY=1,3' do
|
931
|
-
rrule = 'FREQ=DAILY;BYMONTH=1,3;COUNT=4;BYDAY=TU,TH;BYMONTHDAY=1,3'
|
932
|
-
dtstart = Time.parse('Tue Sep 2 09:00:00 PDT 1997')
|
933
|
-
timezone = 'America/Los_Angeles'
|
934
|
-
|
935
|
-
rrule = RRule::Rule.new(rrule, dtstart: dtstart, tzid: timezone)
|
936
|
-
expect(rrule.all).to match_array([
|
937
|
-
Time.parse('Thu Jan 1 09:00:00 PST 1998'),
|
938
|
-
Time.parse('Tue Mar 3 09:00:00 PST 1998'),
|
939
|
-
Time.parse('Thu Mar 1 09:00:00 PST 2001'),
|
940
|
-
Time.parse('Tue Jan 1 09:00:00 PST 2002')
|
941
|
-
])
|
942
|
-
end
|
943
|
-
|
944
|
-
it 'returns the correct result with an rrule of FREQ=DAILY;BYMONTH=1,3;COUNT=4;BYDAY=TU,TH' do
|
945
|
-
rrule = 'FREQ=DAILY;BYMONTH=1,3;COUNT=4;BYDAY=TU,TH'
|
946
|
-
dtstart = Time.parse('Tue Sep 2 09:00:00 PDT 1997')
|
947
|
-
timezone = 'America/Los_Angeles'
|
948
|
-
|
949
|
-
rrule = RRule::Rule.new(rrule, dtstart: dtstart, tzid: timezone)
|
950
|
-
expect(rrule.all).to match_array([
|
951
|
-
Time.parse('Thu Jan 1 09:00:00 PST 1998'),
|
952
|
-
Time.parse('Tue Jan 6 09:00:00 PST 1998'),
|
953
|
-
Time.parse('Thu Jan 8 09:00:00 PST 1998'),
|
954
|
-
Time.parse('Tue Jan 13 09:00:00 PST 1998')
|
955
|
-
])
|
956
|
-
end
|
957
|
-
|
958
|
-
it 'returns the correct result with an rrule of FREQ=DAILY;COUNT=4;BYMONTHDAY=1,3' do
|
959
|
-
rrule = 'FREQ=DAILY;COUNT=4;BYMONTHDAY=1,3'
|
960
|
-
dtstart = Time.parse('Tue Sep 2 09:00:00 PDT 1997')
|
961
|
-
timezone = 'America/Los_Angeles'
|
962
|
-
|
963
|
-
rrule = RRule::Rule.new(rrule, dtstart: dtstart, tzid: timezone)
|
964
|
-
expect(rrule.all).to match_array([
|
965
|
-
Time.parse('Wed Sep 3 09:00:00 PDT 1997'),
|
966
|
-
Time.parse('Wed Oct 1 09:00:00 PDT 1997'),
|
967
|
-
Time.parse('Fri Oct 3 09:00:00 PDT 1997'),
|
968
|
-
Time.parse('Sat Nov 1 09:00:00 PST 1997')
|
969
|
-
])
|
970
|
-
end
|
971
|
-
|
972
|
-
it 'returns the correct result with an rrule of FREQ=DAILY;COUNT=4;BYDAY=TU,TH;BYMONTHDAY=1,3' do
|
973
|
-
rrule = 'FREQ=DAILY;COUNT=4;BYDAY=TU,TH;BYMONTHDAY=1,3'
|
974
|
-
dtstart = Time.parse('Tue Sep 2 09:00:00 PDT 1997')
|
975
|
-
timezone = 'America/Los_Angeles'
|
976
|
-
|
977
|
-
rrule = RRule::Rule.new(rrule, dtstart: dtstart, tzid: timezone)
|
978
|
-
expect(rrule.all).to match_array([
|
979
|
-
Time.parse('Thu Jan 1 09:00:00 PST 1998'),
|
980
|
-
Time.parse('Tue Feb 3 09:00:00 PST 1998'),
|
981
|
-
Time.parse('Tue Mar 3 09:00:00 PST 1998'),
|
982
|
-
Time.parse('Tue Sep 1 09:00:00 PDT 1998')
|
983
|
-
])
|
984
|
-
end
|
985
|
-
|
986
|
-
it 'returns the correct result with an rrule of FREQ=DAILY;COUNT=3;BYDAY=TU,TH' do
|
987
|
-
rrule = 'FREQ=DAILY;COUNT=3;BYDAY=TU,TH'
|
988
|
-
dtstart = Time.parse('Tue Sep 2 09:00:00 PDT 1997')
|
989
|
-
timezone = 'America/Los_Angeles'
|
990
|
-
|
991
|
-
rrule = RRule::Rule.new(rrule, dtstart: dtstart, tzid: timezone)
|
992
|
-
expect(rrule.all).to match_array([
|
993
|
-
Time.parse('Tue Sep 2 09:00:00 PDT 1997'),
|
994
|
-
Time.parse('Thu Sep 4 09:00:00 PDT 1997'),
|
995
|
-
Time.parse('Tue Sep 9 09:00:00 PDT 1997')
|
996
|
-
])
|
997
|
-
end
|
998
|
-
|
999
|
-
it 'returns the correct result with an rrule of FREQ=DAILY;COUNT=3;INTERVAL=2' do
|
1000
|
-
rrule = 'FREQ=DAILY;COUNT=3;INTERVAL=2'
|
1001
|
-
dtstart = Time.parse('Tue Sep 2 09:00:00 PDT 1997')
|
1002
|
-
timezone = 'America/Los_Angeles'
|
1003
|
-
|
1004
|
-
rrule = RRule::Rule.new(rrule, dtstart: dtstart, tzid: timezone)
|
1005
|
-
expect(rrule.all).to match_array([
|
1006
|
-
Time.parse('Tue Sep 2 09:00:00 PDT 1997'),
|
1007
|
-
Time.parse('Thu Sep 4 09:00:00 PDT 1997'),
|
1008
|
-
Time.parse('Sat Sep 6 09:00:00 PDT 1997')
|
1009
|
-
])
|
1010
|
-
end
|
1011
|
-
|
1012
|
-
it 'returns the correct result with an rrule of FREQ=DAILY;COUNT=3;INTERVAL=92' do
|
1013
|
-
rrule = 'FREQ=DAILY;COUNT=3;INTERVAL=92'
|
1014
|
-
dtstart = Time.parse('Tue Sep 2 09:00:00 PDT 1997')
|
1015
|
-
timezone = 'America/Los_Angeles'
|
1016
|
-
|
1017
|
-
rrule = RRule::Rule.new(rrule, dtstart: dtstart, tzid: timezone)
|
1018
|
-
expect(rrule.all).to match_array([
|
1019
|
-
Time.parse('Tue Sep 2 09:00:00 PDT 1997'),
|
1020
|
-
Time.parse('Wed Dec 3 09:00:00 PST 1997'),
|
1021
|
-
Time.parse('Thu Mar 5 09:00:00 PST 1998')
|
1022
|
-
])
|
1023
|
-
end
|
1024
|
-
|
1025
|
-
it 'returns the correct result with an rrule of FREQ=YEARLY;BYMONTH=2;COUNT=1;BYMONTHDAY=31' do
|
1026
|
-
rrule = 'FREQ=YEARLY;BYMONTH=2;COUNT=1;BYMONTHDAY=31'
|
1027
|
-
dtstart = Time.parse('Tue Sep 2 09:00:00 PDT 9997')
|
1028
|
-
timezone = 'America/Los_Angeles'
|
1029
|
-
|
1030
|
-
rrule = RRule::Rule.new(rrule, dtstart: dtstart, tzid: timezone)
|
1031
|
-
expect(rrule.all).to be_empty
|
1032
|
-
end
|
1033
|
-
|
1034
|
-
it 'returns the correct result with an rrule of FREQ=MONTHLY;COUNT=3' do
|
1035
|
-
rrule = 'FREQ=MONTHLY;COUNT=3'
|
1036
|
-
dtstart = Time.parse('Tue Sep 2 09:00:00 PDT 1997')
|
1037
|
-
timezone = 'America/Los_Angeles'
|
1038
|
-
|
1039
|
-
rrule = RRule::Rule.new(rrule, dtstart: dtstart, tzid: timezone)
|
1040
|
-
expect(rrule.all).to match_array([
|
1041
|
-
Time.parse('Tue Sep 2 09:00:00 PDT 1997'),
|
1042
|
-
Time.parse('Thu Oct 2 09:00:00 PDT 1997'),
|
1043
|
-
Time.parse('Sun Nov 2 09:00:00 PST 1997')
|
1044
|
-
])
|
1045
|
-
end
|
1046
|
-
|
1047
|
-
it 'returns the correct result with an rrule of FREQ=MONTHLY;BYMONTH=1,3;COUNT=4' do
|
1048
|
-
rrule = 'FREQ=MONTHLY;BYMONTH=1,3;COUNT=4'
|
1049
|
-
dtstart = Time.parse('Tue Sep 2 09:00:00 PDT 1997')
|
1050
|
-
timezone = 'America/Los_Angeles'
|
1051
|
-
|
1052
|
-
rrule = RRule::Rule.new(rrule, dtstart: dtstart, tzid: timezone)
|
1053
|
-
expect(rrule.all).to match_array([
|
1054
|
-
Time.parse('Fri Jan 2 09:00:00 PST 1998'),
|
1055
|
-
Time.parse('Mon Mar 2 09:00:00 PST 1998'),
|
1056
|
-
Time.parse('Sat Jan 2 09:00:00 PST 1999'),
|
1057
|
-
Time.parse('Tue Mar 2 09:00:00 PST 1999')
|
1058
|
-
])
|
1059
|
-
end
|
1060
|
-
|
1061
|
-
it 'returns the correct result with an rrule of FREQ=MONTHLY;BYMONTH=1,3;COUNT=4;BYMONTHDAY=5,7' do
|
1062
|
-
rrule = 'FREQ=MONTHLY;BYMONTH=1,3;COUNT=4;BYMONTHDAY=5,7'
|
1063
|
-
dtstart = Time.parse('Tue Sep 2 09:00:00 PDT 1997')
|
1064
|
-
timezone = 'America/Los_Angeles'
|
1065
|
-
|
1066
|
-
rrule = RRule::Rule.new(rrule, dtstart: dtstart, tzid: timezone)
|
1067
|
-
expect(rrule.all).to match_array([
|
1068
|
-
Time.parse('Mon Jan 5 09:00:00 PST 1998'),
|
1069
|
-
Time.parse('Wed Jan 7 09:00:00 PST 1998'),
|
1070
|
-
Time.parse('Thu Mar 5 09:00:00 PST 1998'),
|
1071
|
-
Time.parse('Sat Mar 7 09:00:00 PST 1998')
|
1072
|
-
])
|
1073
|
-
end
|
1074
|
-
|
1075
|
-
it 'returns the correct result with an rrule of FREQ=MONTHLY;BYMONTH=1,3;COUNT=4;BYDAY=TU,TH;BYMONTHDAY=1,3' do
|
1076
|
-
rrule = 'FREQ=MONTHLY;BYMONTH=1,3;COUNT=4;BYDAY=TU,TH;BYMONTHDAY=1,3'
|
1077
|
-
dtstart = Time.parse('Tue Sep 2 09:00:00 PDT 1997')
|
1078
|
-
timezone = 'America/Los_Angeles'
|
1079
|
-
|
1080
|
-
rrule = RRule::Rule.new(rrule, dtstart: dtstart, tzid: timezone)
|
1081
|
-
expect(rrule.all).to match_array([
|
1082
|
-
Time.parse('Thu Jan 1 09:00:00 PST 1998'),
|
1083
|
-
Time.parse('Tue Mar 3 09:00:00 PST 1998'),
|
1084
|
-
Time.parse('Thu Mar 1 09:00:00 PST 2001'),
|
1085
|
-
Time.parse('Tue Jan 1 09:00:00 PST 2002')
|
1086
|
-
])
|
1087
|
-
end
|
1088
|
-
|
1089
|
-
it 'returns the correct result with an rrule of FREQ=MONTHLY;BYMONTH=1,3;COUNT=4;BYDAY=1TU,-1TH' do
|
1090
|
-
rrule = 'FREQ=MONTHLY;BYMONTH=1,3;COUNT=4;BYDAY=1TU,-1TH'
|
1091
|
-
dtstart = Time.parse('Tue Sep 2 09:00:00 PDT 1997')
|
1092
|
-
timezone = 'America/Los_Angeles'
|
1093
|
-
|
1094
|
-
rrule = RRule::Rule.new(rrule, dtstart: dtstart, tzid: timezone)
|
1095
|
-
expect(rrule.all).to match_array([
|
1096
|
-
Time.parse('Tue Jan 6 09:00:00 PST 1998'),
|
1097
|
-
Time.parse('Thu Jan 29 09:00:00 PST 1998'),
|
1098
|
-
Time.parse('Tue Mar 3 09:00:00 PST 1998'),
|
1099
|
-
Time.parse('Thu Mar 26 09:00:00 PST 1998')
|
1100
|
-
])
|
1101
|
-
end
|
1102
|
-
|
1103
|
-
it 'returns the correct result with an rrule of FREQ=MONTHLY;BYMONTH=1,3;COUNT=4;BYDAY=3TU,-3TH' do
|
1104
|
-
rrule = 'FREQ=MONTHLY;BYMONTH=1,3;COUNT=4;BYDAY=3TU,-3TH'
|
1105
|
-
dtstart = Time.parse('Tue Sep 2 09:00:00 PDT 1997')
|
1106
|
-
timezone = 'America/Los_Angeles'
|
1107
|
-
|
1108
|
-
rrule = RRule::Rule.new(rrule, dtstart: dtstart, tzid: timezone)
|
1109
|
-
expect(rrule.all).to match_array([
|
1110
|
-
Time.parse('Thu Jan 15 09:00:00 PST 1998'),
|
1111
|
-
Time.parse('Tue Jan 20 09:00:00 PST 1998'),
|
1112
|
-
Time.parse('Thu Mar 12 09:00:00 PST 1998'),
|
1113
|
-
Time.parse('Tue Mar 17 09:00:00 PST 1998')
|
1114
|
-
])
|
1115
|
-
end
|
1116
|
-
|
1117
|
-
it 'returns the correct result with an rrule of FREQ=MONTHLY;BYMONTH=1,3;COUNT=4;BYDAY=TU,TH' do
|
1118
|
-
rrule = 'FREQ=MONTHLY;BYMONTH=1,3;COUNT=4;BYDAY=TU,TH'
|
1119
|
-
dtstart = Time.parse('Tue Sep 2 09:00:00 PDT 1997')
|
1120
|
-
timezone = 'America/Los_Angeles'
|
1121
|
-
|
1122
|
-
rrule = RRule::Rule.new(rrule, dtstart: dtstart, tzid: timezone)
|
1123
|
-
expect(rrule.all).to match_array([
|
1124
|
-
Time.parse('Thu Jan 1 09:00:00 PST 1998'),
|
1125
|
-
Time.parse('Tue Jan 6 09:00:00 PST 1998'),
|
1126
|
-
Time.parse('Thu Jan 8 09:00:00 PST 1998'),
|
1127
|
-
Time.parse('Tue Jan 13 09:00:00 PST 1998')
|
1128
|
-
])
|
1129
|
-
end
|
1130
|
-
|
1131
|
-
it 'returns the correct result with an rrule of FREQ=MONTHLY;COUNT=4;BYMONTHDAY=1,3' do
|
1132
|
-
rrule = 'FREQ=MONTHLY;COUNT=4;BYMONTHDAY=1,3'
|
1133
|
-
dtstart = Time.parse('Tue Sep 2 09:00:00 PDT 1997')
|
1134
|
-
timezone = 'America/Los_Angeles'
|
1135
|
-
|
1136
|
-
rrule = RRule::Rule.new(rrule, dtstart: dtstart, tzid: timezone)
|
1137
|
-
expect(rrule.all).to match_array([
|
1138
|
-
Time.parse('Wed Sep 3 09:00:00 PDT 1997'),
|
1139
|
-
Time.parse('Wed Oct 1 09:00:00 PDT 1997'),
|
1140
|
-
Time.parse('Fri Oct 3 09:00:00 PDT 1997'),
|
1141
|
-
Time.parse('Sat Nov 1 09:00:00 PST 1997')
|
1142
|
-
])
|
1143
|
-
end
|
1144
|
-
|
1145
|
-
it 'returns the correct result with an rrule of FREQ=MONTHLY;COUNT=4;BYDAY=TU,TH;BYMONTHDAY=1,3' do
|
1146
|
-
rrule = 'FREQ=MONTHLY;COUNT=4;BYDAY=TU,TH;BYMONTHDAY=1,3'
|
1147
|
-
dtstart = Time.parse('Tue Sep 2 09:00:00 PDT 1997')
|
1148
|
-
timezone = 'America/Los_Angeles'
|
1149
|
-
|
1150
|
-
rrule = RRule::Rule.new(rrule, dtstart: dtstart, tzid: timezone)
|
1151
|
-
expect(rrule.all).to match_array([
|
1152
|
-
Time.parse('Thu Jan 1 09:00:00 PST 1998'),
|
1153
|
-
Time.parse('Tue Feb 3 09:00:00 PST 1998'),
|
1154
|
-
Time.parse('Tue Mar 3 09:00:00 PST 1998'),
|
1155
|
-
Time.parse('Tue Sep 1 09:00:00 PDT 1998')
|
1156
|
-
])
|
1157
|
-
end
|
1158
|
-
|
1159
|
-
it 'returns the correct result with an rrule of FREQ=MONTHLY;COUNT=3;BYDAY=1TU,-1TH' do
|
1160
|
-
rrule = 'FREQ=MONTHLY;COUNT=3;BYDAY=1TU,-1TH'
|
1161
|
-
dtstart = Time.parse('Tue Sep 2 09:00:00 PDT 1997')
|
1162
|
-
timezone = 'America/Los_Angeles'
|
1163
|
-
|
1164
|
-
rrule = RRule::Rule.new(rrule, dtstart: dtstart, tzid: timezone)
|
1165
|
-
expect(rrule.all).to match_array([
|
1166
|
-
Time.parse('Tue Sep 2 09:00:00 PDT 1997'),
|
1167
|
-
Time.parse('Thu Sep 25 09:00:00 PDT 1997'),
|
1168
|
-
Time.parse('Tue Oct 7 09:00:00 PDT 1997')
|
1169
|
-
])
|
1170
|
-
end
|
1171
|
-
|
1172
|
-
it 'returns the correct result with an rrule of FREQ=MONTHLY;COUNT=4;BYDAY=3TU,-3TH' do
|
1173
|
-
rrule = 'FREQ=MONTHLY;COUNT=4;BYDAY=3TU,-3TH'
|
1174
|
-
dtstart = Time.parse('Tue Sep 2 09:00:00 PDT 1997')
|
1175
|
-
timezone = 'America/Los_Angeles'
|
1176
|
-
|
1177
|
-
rrule = RRule::Rule.new(rrule, dtstart: dtstart, tzid: timezone)
|
1178
|
-
expect(rrule.all).to match_array([
|
1179
|
-
Time.parse('Thu Sep 11 09:00:00 PDT 1997'),
|
1180
|
-
Time.parse('Tue Sep 16 09:00:00 PDT 1997'),
|
1181
|
-
Time.parse('Thu Oct 16 09:00:00 PDT 1997'),
|
1182
|
-
Time.parse('Tue Oct 21 09:00:00 PDT 1997')
|
1183
|
-
])
|
1184
|
-
end
|
1185
|
-
|
1186
|
-
it 'returns the correct result with an rrule of FREQ=MONTHLY;COUNT=3;BYDAY=TU,TH' do
|
1187
|
-
rrule = 'FREQ=MONTHLY;COUNT=3;BYDAY=TU,TH'
|
1188
|
-
dtstart = Time.parse('Tue Sep 2 09:00:00 PDT 1997')
|
1189
|
-
timezone = 'America/Los_Angeles'
|
1190
|
-
|
1191
|
-
rrule = RRule::Rule.new(rrule, dtstart: dtstart, tzid: timezone)
|
1192
|
-
expect(rrule.all).to match_array([
|
1193
|
-
Time.parse('Tue Sep 2 09:00:00 PDT 1997'),
|
1194
|
-
Time.parse('Thu Sep 4 09:00:00 PDT 1997'),
|
1195
|
-
Time.parse('Tue Sep 9 09:00:00 PDT 1997')
|
1196
|
-
])
|
1197
|
-
end
|
1198
|
-
|
1199
|
-
it 'returns the correct result with an rrule of FREQ=MONTHLY;COUNT=3;INTERVAL=2' do
|
1200
|
-
rrule = 'FREQ=MONTHLY;COUNT=3;INTERVAL=2'
|
1201
|
-
dtstart = Time.parse('Tue Sep 2 09:00:00 PDT 1997')
|
1202
|
-
timezone = 'America/Los_Angeles'
|
1203
|
-
|
1204
|
-
rrule = RRule::Rule.new(rrule, dtstart: dtstart, tzid: timezone)
|
1205
|
-
expect(rrule.all).to match_array([
|
1206
|
-
Time.parse('Tue Sep 2 09:00:00 PDT 1997'),
|
1207
|
-
Time.parse('Sun Nov 2 09:00:00 PST 1997'),
|
1208
|
-
Time.parse('Fri Jan 2 09:00:00 PST 1998')
|
1209
|
-
])
|
1210
|
-
end
|
1211
|
-
|
1212
|
-
it 'returns the correct result with an rrule of FREQ=MONTHLY;COUNT=3;INTERVAL=18' do
|
1213
|
-
rrule = 'FREQ=MONTHLY;COUNT=3;INTERVAL=18'
|
1214
|
-
dtstart = Time.parse('Tue Sep 2 09:00:00 PDT 1997')
|
1215
|
-
timezone = 'America/Los_Angeles'
|
1216
|
-
|
1217
|
-
rrule = RRule::Rule.new(rrule, dtstart: dtstart, tzid: timezone)
|
1218
|
-
expect(rrule.all).to match_array([
|
1219
|
-
Time.parse('Tue Sep 2 09:00:00 PDT 1997'),
|
1220
|
-
Time.parse('Tue Mar 2 09:00:00 PST 1999'),
|
1221
|
-
Time.parse('Sat Sep 2 09:00:00 PDT 2000')
|
1222
|
-
])
|
1223
|
-
end
|
1224
|
-
|
1225
|
-
it 'returns the correct result with an rrule of FREQ=DAILY;UNTIL=19970901T170000Z' do
|
1226
|
-
rrule = 'FREQ=DAILY;UNTIL=19970901T170000Z'
|
1227
|
-
dtstart = Time.parse('Mon Sep 1 10:00:00 PDT 1997')
|
1228
|
-
timezone = 'America/Los_Angeles'
|
1229
|
-
|
1230
|
-
rrule = RRule::Rule.new(rrule, dtstart: dtstart, tzid: timezone)
|
1231
|
-
expect(rrule.all).to match_array([
|
1232
|
-
Time.parse('Mon Sep 1 10:00:00 PDT 1997')
|
1233
|
-
])
|
1234
|
-
end
|
1235
|
-
|
1236
|
-
it 'returns the correct result with an rrule of FREQ=DAILY;UNTIL=19970904T160000Z' do
|
1237
|
-
rrule = 'FREQ=DAILY;UNTIL=19970904T160000Z'
|
1238
|
-
dtstart = Time.parse('Tue Sep 2 09:00:00 PDT 1997')
|
1239
|
-
timezone = 'America/Los_Angeles'
|
1240
|
-
|
1241
|
-
rrule = RRule::Rule.new(rrule, dtstart: dtstart, tzid: timezone)
|
1242
|
-
expect(rrule.all).to match_array([
|
1243
|
-
Time.parse('Tue Sep 2 09:00:00 PDT 1997'),
|
1244
|
-
Time.parse('Wed Sep 3 09:00:00 PDT 1997'),
|
1245
|
-
Time.parse('Thu Sep 4 09:00:00 PDT 1997')
|
1246
|
-
])
|
1247
|
-
end
|
1248
|
-
|
1249
|
-
it 'returns the correct result with an rrule of FREQ=DAILY;UNTIL=19970905T150000Z' do
|
1250
|
-
rrule = 'FREQ=DAILY;UNTIL=19970905T150000Z'
|
1251
|
-
dtstart = Time.parse('Tue Sep 2 09:00:00 PDT 1997')
|
1252
|
-
timezone = 'America/Los_Angeles'
|
1253
|
-
|
1254
|
-
rrule = RRule::Rule.new(rrule, dtstart: dtstart, tzid: timezone)
|
1255
|
-
expect(rrule.all).to match_array([
|
1256
|
-
Time.parse('Tue Sep 2 09:00:00 PDT 1997'),
|
1257
|
-
Time.parse('Wed Sep 3 09:00:00 PDT 1997'),
|
1258
|
-
Time.parse('Thu Sep 4 09:00:00 PDT 1997')
|
1259
|
-
])
|
1260
|
-
end
|
1261
|
-
|
1262
|
-
it 'returns the correct result with an rrule of FREQ=DAILY;UNTIL=19970902T160000Z' do
|
1263
|
-
rrule = 'FREQ=DAILY;UNTIL=19970902T160000Z'
|
1264
|
-
dtstart = Time.parse('Tue Sep 2 09:00:00 PDT 1997')
|
1265
|
-
timezone = 'America/Los_Angeles'
|
1266
|
-
|
1267
|
-
rrule = RRule::Rule.new(rrule, dtstart: dtstart, tzid: timezone)
|
1268
|
-
expect(rrule.all).to match_array([
|
1269
|
-
Time.parse('Tue Sep 2 09:00:00 PDT 1997')
|
1270
|
-
])
|
1271
|
-
end
|
1272
|
-
|
1273
|
-
it 'returns the correct result with an rrule of FREQ=WEEKLY;COUNT=3' do
|
1274
|
-
rrule = 'FREQ=WEEKLY;COUNT=3'
|
1275
|
-
dtstart = Time.parse('Tue Sep 2 09:00:00 PDT 1997')
|
1276
|
-
timezone = 'America/Los_Angeles'
|
1277
|
-
|
1278
|
-
rrule = RRule::Rule.new(rrule, dtstart: dtstart, tzid: timezone)
|
1279
|
-
expect(rrule.all).to match_array([
|
1280
|
-
Time.parse('Tue Sep 2 09:00:00 PDT 1997'),
|
1281
|
-
Time.parse('Tue Sep 9 09:00:00 PDT 1997'),
|
1282
|
-
Time.parse('Tue Sep 16 09:00:00 PDT 1997')
|
1283
|
-
])
|
1284
|
-
end
|
1285
|
-
|
1286
|
-
it 'returns the correct result with an rrule of FREQ=WEEKLY;BYMONTH=1,3;COUNT=4' do
|
1287
|
-
rrule = 'FREQ=WEEKLY;BYMONTH=1,3;COUNT=4'
|
1288
|
-
dtstart = Time.parse('Tue Sep 2 09:00:00 PDT 1997')
|
1289
|
-
timezone = 'America/Los_Angeles'
|
1290
|
-
|
1291
|
-
rrule = RRule::Rule.new(rrule, dtstart: dtstart, tzid: timezone)
|
1292
|
-
expect(rrule.all).to match_array([
|
1293
|
-
Time.parse('Tue Jan 6 09:00:00 PST 1998'),
|
1294
|
-
Time.parse('Tue Jan 13 09:00:00 PST 1998'),
|
1295
|
-
Time.parse('Tue Jan 20 09:00:00 PST 1998'),
|
1296
|
-
Time.parse('Tue Jan 27 09:00:00 PST 1998')
|
1297
|
-
])
|
1298
|
-
end
|
1299
|
-
|
1300
|
-
it 'returns the correct result with an rrule of FREQ=WEEKLY;BYMONTH=1,3;COUNT=4;BYDAY=TU,TH' do
|
1301
|
-
rrule = 'FREQ=WEEKLY;BYMONTH=1,3;COUNT=4;BYDAY=TU,TH'
|
1302
|
-
dtstart = Time.parse('Tue Sep 2 09:00:00 PDT 1997')
|
1303
|
-
timezone = 'America/Los_Angeles'
|
1304
|
-
|
1305
|
-
rrule = RRule::Rule.new(rrule, dtstart: dtstart, tzid: timezone)
|
1306
|
-
expect(rrule.all).to match_array([
|
1307
|
-
Time.parse('Thu Jan 1 09:00:00 PST 1998'),
|
1308
|
-
Time.parse('Tue Jan 6 09:00:00 PST 1998'),
|
1309
|
-
Time.parse('Thu Jan 8 09:00:00 PST 1998'),
|
1310
|
-
Time.parse('Tue Jan 13 09:00:00 PST 1998')
|
1311
|
-
])
|
1312
|
-
end
|
1313
|
-
|
1314
|
-
it 'returns the correct result with an rrule of FREQ=WEEKLY;COUNT=3;BYDAY=TU,TH' do
|
1315
|
-
rrule = 'FREQ=WEEKLY;COUNT=3;BYDAY=TU,TH'
|
1316
|
-
dtstart = Time.parse('Tue Sep 2 09:00:00 PDT 1997')
|
1317
|
-
timezone = 'America/Los_Angeles'
|
1318
|
-
|
1319
|
-
rrule = RRule::Rule.new(rrule, dtstart: dtstart, tzid: timezone)
|
1320
|
-
expect(rrule.all).to match_array([
|
1321
|
-
Time.parse('Tue Sep 2 09:00:00 PDT 1997'),
|
1322
|
-
Time.parse('Thu Sep 4 09:00:00 PDT 1997'),
|
1323
|
-
Time.parse('Tue Sep 9 09:00:00 PDT 1997')
|
1324
|
-
])
|
1325
|
-
end
|
1326
|
-
|
1327
|
-
it 'returns the correct result with an rrule of FREQ=WEEKLY;COUNT=3;INTERVAL=2' do
|
1328
|
-
rrule = 'FREQ=WEEKLY;COUNT=3;INTERVAL=2'
|
1329
|
-
dtstart = Time.parse('Tue Sep 2 09:00:00 PDT 1997')
|
1330
|
-
timezone = 'America/Los_Angeles'
|
1331
|
-
|
1332
|
-
rrule = RRule::Rule.new(rrule, dtstart: dtstart, tzid: timezone)
|
1333
|
-
expect(rrule.all).to match_array([
|
1334
|
-
Time.parse('Tue Sep 2 09:00:00 PDT 1997'),
|
1335
|
-
Time.parse('Tue Sep 16 09:00:00 PDT 1997'),
|
1336
|
-
Time.parse('Tue Sep 30 09:00:00 PDT 1997')
|
1337
|
-
])
|
1338
|
-
end
|
1339
|
-
|
1340
|
-
it 'returns the correct result with an rrule of FREQ=WEEKLY;COUNT=3;INTERVAL=20' do
|
1341
|
-
rrule = 'FREQ=WEEKLY;COUNT=3;INTERVAL=20'
|
1342
|
-
dtstart = Time.parse('Tue Sep 2 09:00:00 PDT 1997')
|
1343
|
-
timezone = 'America/Los_Angeles'
|
1344
|
-
|
1345
|
-
rrule = RRule::Rule.new(rrule, dtstart: dtstart, tzid: timezone)
|
1346
|
-
expect(rrule.all).to match_array([
|
1347
|
-
Time.parse('Tue Sep 2 09:00:00 PDT 1997'),
|
1348
|
-
Time.parse('Tue Jan 20 09:00:00 PST 1998'),
|
1349
|
-
Time.parse('Tue Jun 9 09:00:00 PDT 1998')
|
1350
|
-
])
|
1351
|
-
end
|
1352
|
-
|
1353
|
-
it 'returns the correct result with an rrule of FREQ=WEEKLY;COUNT=3;BYDAY=TU,SU;WKST=MO;INTERVAL=2' do
|
1354
|
-
rrule = 'FREQ=WEEKLY;COUNT=3;BYDAY=TU,SU;WKST=MO;INTERVAL=2'
|
1355
|
-
dtstart = Time.parse('Tue Sep 2 09:00:00 PDT 1997')
|
1356
|
-
timezone = 'America/Los_Angeles'
|
1357
|
-
|
1358
|
-
rrule = RRule::Rule.new(rrule, dtstart: dtstart, tzid: timezone)
|
1359
|
-
expect(rrule.all).to match_array([
|
1360
|
-
Time.parse('Tue Sep 2 09:00:00 PDT 1997'),
|
1361
|
-
Time.parse('Sun Sep 7 09:00:00 PDT 1997'),
|
1362
|
-
Time.parse('Tue Sep 16 09:00:00 PDT 1997')
|
1363
|
-
])
|
1364
|
-
end
|
1365
|
-
|
1366
|
-
it 'returns the correct result with an rrule of FREQ=WEEKLY;COUNT=3;BYDAY=TU,SU;WKST=SU;INTERVAL=2' do
|
1367
|
-
rrule = 'FREQ=WEEKLY;COUNT=3;BYDAY=TU,SU;WKST=SU;INTERVAL=2'
|
1368
|
-
dtstart = Time.parse('Tue Sep 2 09:00:00 PDT 1997')
|
1369
|
-
timezone = 'America/Los_Angeles'
|
1370
|
-
|
1371
|
-
rrule = RRule::Rule.new(rrule, dtstart: dtstart, tzid: timezone)
|
1372
|
-
expect(rrule.all).to match_array([
|
1373
|
-
Time.parse('Tue Sep 2 09:00:00 PDT 1997'),
|
1374
|
-
Time.parse('Sun Sep 14 09:00:00 PDT 1997'),
|
1375
|
-
Time.parse('Tue Sep 16 09:00:00 PDT 1997')
|
1376
|
-
])
|
1377
|
-
end
|
1378
|
-
|
1379
|
-
it 'returns the correct result with an rrule of FREQ=YEARLY;COUNT=3' do
|
1380
|
-
rrule = 'FREQ=YEARLY;COUNT=3'
|
1381
|
-
dtstart = Time.parse('Tue Sep 2 09:00:00 PDT 1997')
|
1382
|
-
timezone = 'America/Los_Angeles'
|
1383
|
-
|
1384
|
-
rrule = RRule::Rule.new(rrule, dtstart: dtstart, tzid: timezone)
|
1385
|
-
expect(rrule.all).to match_array([
|
1386
|
-
Time.parse('Tue Sep 2 09:00:00 PDT 1997'),
|
1387
|
-
Time.parse('Wed Sep 2 09:00:00 PDT 1998'),
|
1388
|
-
Time.parse('Thu Sep 2 09:00:00 PDT 1999')
|
1389
|
-
])
|
1390
|
-
end
|
1391
|
-
|
1392
|
-
it 'returns the correct result with an rrule of FREQ=YEARLY;BYMONTH=1,3;COUNT=4' do
|
1393
|
-
rrule = 'FREQ=YEARLY;BYMONTH=1,3;COUNT=4'
|
1394
|
-
dtstart = Time.parse('Tue Sep 2 09:00:00 PDT 1997')
|
1395
|
-
timezone = 'America/Los_Angeles'
|
1396
|
-
|
1397
|
-
rrule = RRule::Rule.new(rrule, dtstart: dtstart, tzid: timezone)
|
1398
|
-
expect(rrule.all).to match_array([
|
1399
|
-
Time.parse('Fri Jan 2 09:00:00 PST 1998'),
|
1400
|
-
Time.parse('Mon Mar 2 09:00:00 PST 1998'),
|
1401
|
-
Time.parse('Sat Jan 2 09:00:00 PST 1999'),
|
1402
|
-
Time.parse('Tue Mar 2 09:00:00 PST 1999')
|
1403
|
-
])
|
1404
|
-
end
|
1405
|
-
|
1406
|
-
it 'returns the correct result with an rrule of FREQ=YEARLY;BYMONTH=1,3;COUNT=4;BYMONTHDAY=5,7' do
|
1407
|
-
rrule = 'FREQ=YEARLY;BYMONTH=1,3;COUNT=4;BYMONTHDAY=5,7'
|
1408
|
-
dtstart = Time.parse('Tue Sep 2 09:00:00 PDT 1997')
|
1409
|
-
timezone = 'America/Los_Angeles'
|
1410
|
-
|
1411
|
-
rrule = RRule::Rule.new(rrule, dtstart: dtstart, tzid: timezone)
|
1412
|
-
expect(rrule.all).to match_array([
|
1413
|
-
Time.parse('Mon Jan 5 09:00:00 PST 1998'),
|
1414
|
-
Time.parse('Wed Jan 7 09:00:00 PST 1998'),
|
1415
|
-
Time.parse('Thu Mar 5 09:00:00 PST 1998'),
|
1416
|
-
Time.parse('Sat Mar 7 09:00:00 PST 1998')
|
1417
|
-
])
|
1418
|
-
end
|
1419
|
-
|
1420
|
-
it 'returns the correct result with an rrule of FREQ=YEARLY;BYMONTH=1,3;COUNT=4;BYDAY=TU,TH;BYMONTHDAY=1,3' do
|
1421
|
-
rrule = 'FREQ=YEARLY;BYMONTH=1,3;COUNT=4;BYDAY=TU,TH;BYMONTHDAY=1,3'
|
1422
|
-
dtstart = Time.parse('Tue Sep 2 09:00:00 PDT 1997')
|
1423
|
-
timezone = 'America/Los_Angeles'
|
1424
|
-
|
1425
|
-
rrule = RRule::Rule.new(rrule, dtstart: dtstart, tzid: timezone)
|
1426
|
-
expect(rrule.all).to match_array([
|
1427
|
-
Time.parse('Thu Jan 1 09:00:00 PST 1998'),
|
1428
|
-
Time.parse('Tue Mar 3 09:00:00 PST 1998'),
|
1429
|
-
Time.parse('Thu Mar 1 09:00:00 PST 2001'),
|
1430
|
-
Time.parse('Tue Jan 1 09:00:00 PST 2002')
|
1431
|
-
])
|
1432
|
-
end
|
1433
|
-
|
1434
|
-
it 'returns the correct result with an rrule of FREQ=YEARLY;BYMONTH=1,3;COUNT=4;BYDAY=1TU,-1TH' do
|
1435
|
-
rrule = 'FREQ=YEARLY;BYMONTH=1,3;COUNT=4;BYDAY=1TU,-1TH'
|
1436
|
-
dtstart = Time.parse('Tue Sep 2 09:00:00 PDT 1997')
|
1437
|
-
timezone = 'America/Los_Angeles'
|
1438
|
-
|
1439
|
-
rrule = RRule::Rule.new(rrule, dtstart: dtstart, tzid: timezone)
|
1440
|
-
expect(rrule.all).to match_array([
|
1441
|
-
Time.parse('Tue Jan 6 09:00:00 PST 1998'),
|
1442
|
-
Time.parse('Thu Jan 29 09:00:00 PST 1998'),
|
1443
|
-
Time.parse('Tue Mar 3 09:00:00 PST 1998'),
|
1444
|
-
Time.parse('Thu Mar 26 09:00:00 PST 1998')
|
1445
|
-
])
|
1446
|
-
end
|
1447
|
-
|
1448
|
-
it 'returns the correct result with an rrule of FREQ=YEARLY;BYMONTH=1,3;COUNT=4;BYDAY=3TU,-3TH' do
|
1449
|
-
rrule = 'FREQ=YEARLY;BYMONTH=1,3;COUNT=4;BYDAY=3TU,-3TH'
|
1450
|
-
dtstart = Time.parse('Tue Sep 2 09:00:00 PDT 1997')
|
1451
|
-
timezone = 'America/Los_Angeles'
|
1452
|
-
|
1453
|
-
rrule = RRule::Rule.new(rrule, dtstart: dtstart, tzid: timezone)
|
1454
|
-
expect(rrule.all).to match_array([
|
1455
|
-
Time.parse('Thu Jan 15 09:00:00 PST 1998'),
|
1456
|
-
Time.parse('Tue Jan 20 09:00:00 PST 1998'),
|
1457
|
-
Time.parse('Thu Mar 12 09:00:00 PST 1998'),
|
1458
|
-
Time.parse('Tue Mar 17 09:00:00 PST 1998')
|
1459
|
-
])
|
1460
|
-
end
|
1461
|
-
|
1462
|
-
it 'returns the correct result with an rrule of FREQ=YEARLY;BYMONTH=1,3;COUNT=4;BYDAY=TU,TH' do
|
1463
|
-
rrule = 'FREQ=YEARLY;BYMONTH=1,3;COUNT=4;BYDAY=TU,TH'
|
1464
|
-
dtstart = Time.parse('Tue Sep 2 09:00:00 PDT 1997')
|
1465
|
-
timezone = 'America/Los_Angeles'
|
1466
|
-
|
1467
|
-
rrule = RRule::Rule.new(rrule, dtstart: dtstart, tzid: timezone)
|
1468
|
-
expect(rrule.all).to match_array([
|
1469
|
-
Time.parse('Thu Jan 1 09:00:00 PST 1998'),
|
1470
|
-
Time.parse('Tue Jan 6 09:00:00 PST 1998'),
|
1471
|
-
Time.parse('Thu Jan 8 09:00:00 PST 1998'),
|
1472
|
-
Time.parse('Tue Jan 13 09:00:00 PST 1998')
|
1473
|
-
])
|
1474
|
-
end
|
1475
|
-
|
1476
|
-
it 'returns the correct result with an rrule of FREQ=YEARLY;COUNT=4;BYMONTHDAY=1,3' do
|
1477
|
-
rrule = 'FREQ=YEARLY;COUNT=4;BYMONTHDAY=1,3'
|
1478
|
-
dtstart = Time.parse('Tue Sep 2 09:00:00 PDT 1997')
|
1479
|
-
timezone = 'America/Los_Angeles'
|
1480
|
-
|
1481
|
-
rrule = RRule::Rule.new(rrule, dtstart: dtstart, tzid: timezone)
|
1482
|
-
expect(rrule.all).to match_array([
|
1483
|
-
Time.parse('Wed Sep 3 09:00:00 PDT 1997'),
|
1484
|
-
Time.parse('Wed Oct 1 09:00:00 PDT 1997'),
|
1485
|
-
Time.parse('Fri Oct 3 09:00:00 PDT 1997'),
|
1486
|
-
Time.parse('Sat Nov 1 09:00:00 PST 1997')
|
1487
|
-
])
|
1488
|
-
end
|
1489
|
-
|
1490
|
-
it 'returns the correct result with an rrule of FREQ=YEARLY;COUNT=4;BYDAY=TU,TH;BYMONTHDAY=1,3' do
|
1491
|
-
rrule = 'FREQ=YEARLY;COUNT=4;BYDAY=TU,TH;BYMONTHDAY=1,3'
|
1492
|
-
dtstart = Time.parse('Tue Sep 2 09:00:00 PDT 1997')
|
1493
|
-
timezone = 'America/Los_Angeles'
|
1494
|
-
|
1495
|
-
rrule = RRule::Rule.new(rrule, dtstart: dtstart, tzid: timezone)
|
1496
|
-
expect(rrule.all).to match_array([
|
1497
|
-
Time.parse('Thu Jan 1 09:00:00 PST 1998'),
|
1498
|
-
Time.parse('Tue Feb 3 09:00:00 PST 1998'),
|
1499
|
-
Time.parse('Tue Mar 3 09:00:00 PST 1998'),
|
1500
|
-
Time.parse('Tue Sep 1 09:00:00 PDT 1998')
|
1501
|
-
])
|
1502
|
-
end
|
1503
|
-
|
1504
|
-
it 'returns the correct result with an rrule of FREQ=YEARLY;COUNT=4;BYDAY=1TU,-1TH' do
|
1505
|
-
rrule = 'FREQ=YEARLY;COUNT=4;BYDAY=1TU,-1TH'
|
1506
|
-
dtstart = Time.parse('Tue Sep 2 09:00:00 PDT 1997')
|
1507
|
-
timezone = 'America/Los_Angeles'
|
1508
|
-
|
1509
|
-
rrule = RRule::Rule.new(rrule, dtstart: dtstart, tzid: timezone)
|
1510
|
-
expect(rrule.all).to match_array([
|
1511
|
-
Time.parse('Thu Dec 25 09:00:00 PST 1997'),
|
1512
|
-
Time.parse('Tue Jan 6 09:00:00 PST 1998'),
|
1513
|
-
Time.parse('Thu Dec 31 09:00:00 PST 1998'),
|
1514
|
-
Time.parse('Tue Jan 5 09:00:00 PST 1999')
|
1515
|
-
])
|
1516
|
-
end
|
1517
|
-
|
1518
|
-
it 'returns the correct result with an rrule of FREQ=YEARLY;COUNT=4;BYDAY=3TU,-3TH' do
|
1519
|
-
rrule = 'FREQ=YEARLY;COUNT=4;BYDAY=3TU,-3TH'
|
1520
|
-
dtstart = Time.parse('Tue Sep 2 09:00:00 PDT 1997')
|
1521
|
-
timezone = 'America/Los_Angeles'
|
1522
|
-
|
1523
|
-
rrule = RRule::Rule.new(rrule, dtstart: dtstart, tzid: timezone)
|
1524
|
-
expect(rrule.all).to match_array([
|
1525
|
-
Time.parse('Thu Dec 11 09:00:00 PST 1997'),
|
1526
|
-
Time.parse('Tue Jan 20 09:00:00 PST 1998'),
|
1527
|
-
Time.parse('Thu Dec 17 09:00:00 PST 1998'),
|
1528
|
-
Time.parse('Tue Jan 19 09:00:00 PST 1999')
|
1529
|
-
])
|
1530
|
-
end
|
1531
|
-
|
1532
|
-
it 'returns the correct result with an rrule of FREQ=YEARLY;COUNT=3;BYDAY=TU,TH' do
|
1533
|
-
rrule = 'FREQ=YEARLY;COUNT=3;BYDAY=TU,TH'
|
1534
|
-
dtstart = Time.parse('Tue Sep 2 09:00:00 PDT 1997')
|
1535
|
-
timezone = 'America/Los_Angeles'
|
1536
|
-
|
1537
|
-
rrule = RRule::Rule.new(rrule, dtstart: dtstart, tzid: timezone)
|
1538
|
-
expect(rrule.all).to match_array([
|
1539
|
-
Time.parse('Tue Sep 2 09:00:00 PDT 1997'),
|
1540
|
-
Time.parse('Thu Sep 4 09:00:00 PDT 1997'),
|
1541
|
-
Time.parse('Tue Sep 9 09:00:00 PDT 1997')
|
1542
|
-
])
|
1543
|
-
end
|
1544
|
-
|
1545
|
-
it 'returns the correct result with an rrule of FREQ=YEARLY;COUNT=4;BYWEEKNO=20' do
|
1546
|
-
rrule = 'FREQ=YEARLY;COUNT=4;BYWEEKNO=20'
|
1547
|
-
dtstart = Time.parse('Tue Sep 2 09:00:00 PDT 1997')
|
1548
|
-
timezone = 'America/Los_Angeles'
|
1549
|
-
|
1550
|
-
rrule = RRule::Rule.new(rrule, dtstart: dtstart, tzid: timezone)
|
1551
|
-
expect(rrule.all).to match_array([
|
1552
|
-
Time.parse('Mon May 11 09:00:00 PDT 1998'),
|
1553
|
-
Time.parse('Tue May 12 09:00:00 PDT 1998'),
|
1554
|
-
Time.parse('Wed May 13 09:00:00 PDT 1998'),
|
1555
|
-
Time.parse('Thu May 14 09:00:00 PDT 1998')
|
1556
|
-
])
|
1557
|
-
end
|
1558
|
-
|
1559
|
-
it 'returns the correct result with an rrule of FREQ=YEARLY;COUNT=4;BYDAY=MO;BYWEEKNO=1' do
|
1560
|
-
rrule = 'FREQ=YEARLY;COUNT=4;BYDAY=MO;BYWEEKNO=1'
|
1561
|
-
dtstart = Time.parse('Tue Sep 2 09:00:00 PDT 1997')
|
1562
|
-
timezone = 'America/Los_Angeles'
|
1563
|
-
|
1564
|
-
rrule = RRule::Rule.new(rrule, dtstart: dtstart, tzid: timezone)
|
1565
|
-
expect(rrule.all).to match_array([
|
1566
|
-
Time.parse('Mon Dec 29 09:00:00 PST 1997'),
|
1567
|
-
Time.parse('Mon Jan 4 09:00:00 PST 1999'),
|
1568
|
-
Time.parse('Mon Jan 3 09:00:00 PST 2000'),
|
1569
|
-
Time.parse('Mon Jan 1 09:00:00 PST 2001')
|
1570
|
-
])
|
1571
|
-
end
|
1572
|
-
|
1573
|
-
it 'returns the correct result with an rrule of FREQ=YEARLY;COUNT=4;BYDAY=MO;BYWEEKNO=53' do
|
1574
|
-
rrule = 'FREQ=YEARLY;COUNT=4;BYDAY=MO;BYWEEKNO=53'
|
1575
|
-
dtstart = Time.parse('Tue Sep 2 09:00:00 PDT 1997')
|
1576
|
-
timezone = 'America/Los_Angeles'
|
1577
|
-
|
1578
|
-
rrule = RRule::Rule.new(rrule, dtstart: dtstart, tzid: timezone)
|
1579
|
-
expect(rrule.all).to match_array([
|
1580
|
-
Time.parse('Mon Dec 28 09:00:00 PST 1998'),
|
1581
|
-
Time.parse('Mon Dec 27 09:00:00 PST 2004'),
|
1582
|
-
Time.parse('Mon Dec 28 09:00:00 PST 2009'),
|
1583
|
-
Time.parse('Mon Dec 28 09:00:00 PST 2015')
|
1584
|
-
])
|
1585
|
-
end
|
1586
|
-
|
1587
|
-
it 'returns the correct result with an rrule of FREQ=YEARLY;COUNT=4;BYDAY=SU;BYWEEKNO=52' do
|
1588
|
-
rrule = 'FREQ=YEARLY;COUNT=4;BYDAY=SU;BYWEEKNO=52'
|
1589
|
-
dtstart = Time.parse('Tue Sep 2 09:00:00 PDT 1997')
|
1590
|
-
timezone = 'America/Los_Angeles'
|
1591
|
-
|
1592
|
-
rrule = RRule::Rule.new(rrule, dtstart: dtstart, tzid: timezone)
|
1593
|
-
expect(rrule.all).to match_array([
|
1594
|
-
Time.parse('Sun Dec 28 09:00:00 PST 1997'),
|
1595
|
-
Time.parse('Sun Dec 27 09:00:00 PST 1998'),
|
1596
|
-
Time.parse('Sun Jan 2 09:00:00 PST 2000'),
|
1597
|
-
Time.parse('Sun Dec 31 09:00:00 PST 2000')
|
1598
|
-
])
|
1599
|
-
end
|
1600
|
-
|
1601
|
-
it 'returns the correct result with an rrule of FREQ=YEARLY;COUNT=4;BYDAY=SU;BYWEEKNO=-1' do
|
1602
|
-
rrule = 'FREQ=YEARLY;COUNT=4;BYDAY=SU;BYWEEKNO=-1'
|
1603
|
-
dtstart = Time.parse('Tue Sep 2 09:00:00 PDT 1997')
|
1604
|
-
timezone = 'America/Los_Angeles'
|
1605
|
-
|
1606
|
-
rrule = RRule::Rule.new(rrule, dtstart: dtstart, tzid: timezone)
|
1607
|
-
expect(rrule.all).to match_array([
|
1608
|
-
Time.parse('Sun Dec 28 09:00:00 PST 1997'),
|
1609
|
-
Time.parse('Sun Jan 3 09:00:00 PST 1999'),
|
1610
|
-
Time.parse('Sun Jan 2 09:00:00 PST 2000'),
|
1611
|
-
Time.parse('Sun Dec 31 09:00:00 PST 2000')
|
1612
|
-
])
|
1613
|
-
end
|
1614
|
-
|
1615
|
-
it 'returns the correct result with an rrule of FREQ=YEARLY;COUNT=5;BYYEARDAY=1,100,200,365' do
|
1616
|
-
rrule = 'FREQ=YEARLY;COUNT=5;BYYEARDAY=1,100,200,365'
|
1617
|
-
dtstart = Time.parse('Tue Sep 2 09:00:00 PDT 1997')
|
1618
|
-
timezone = 'America/Los_Angeles'
|
1619
|
-
|
1620
|
-
rrule = RRule::Rule.new(rrule, dtstart: dtstart, tzid: timezone)
|
1621
|
-
expect(rrule.all).to match_array([
|
1622
|
-
Time.parse('Wed Dec 31 09:00:00 PST 1997'),
|
1623
|
-
Time.parse('Thu Jan 1 09:00:00 PST 1998'),
|
1624
|
-
Time.parse('Fri Apr 10 09:00:00 PDT 1998'),
|
1625
|
-
Time.parse('Sun Jul 19 09:00:00 PDT 1998'),
|
1626
|
-
Time.parse('Thu Dec 31 09:00:00 PST 1998')
|
1627
|
-
])
|
1628
|
-
end
|
1629
|
-
|
1630
|
-
it 'returns the correct result with an rrule of FREQ=YEARLY;COUNT=5;BYYEARDAY=-365,-266,-166,-1' do
|
1631
|
-
rrule = 'FREQ=YEARLY;COUNT=5;BYYEARDAY=-365,-266,-166,-1'
|
1632
|
-
dtstart = Time.parse('Tue Sep 2 09:00:00 PDT 1997')
|
1633
|
-
timezone = 'America/Los_Angeles'
|
1634
|
-
|
1635
|
-
rrule = RRule::Rule.new(rrule, dtstart: dtstart, tzid: timezone)
|
1636
|
-
expect(rrule.all).to match_array([
|
1637
|
-
Time.parse('Wed Dec 31 09:00:00 PST 1997'),
|
1638
|
-
Time.parse('Thu Jan 1 09:00:00 PST 1998'),
|
1639
|
-
Time.parse('Fri Apr 10 09:00:00 PDT 1998'),
|
1640
|
-
Time.parse('Sun Jul 19 09:00:00 PDT 1998'),
|
1641
|
-
Time.parse('Thu Dec 31 09:00:00 PST 1998')
|
1642
|
-
])
|
1643
|
-
end
|
1644
|
-
|
1645
|
-
it 'returns the correct result with an rrule of FREQ=YEARLY;COUNT=3;INTERVAL=2' do
|
1646
|
-
rrule = 'FREQ=YEARLY;COUNT=3;INTERVAL=2'
|
1647
|
-
dtstart = Time.parse('Tue Sep 2 09:00:00 PDT 1997')
|
1648
|
-
timezone = 'America/Los_Angeles'
|
1649
|
-
|
1650
|
-
rrule = RRule::Rule.new(rrule, dtstart: dtstart, tzid: timezone)
|
1651
|
-
expect(rrule.all).to match_array([
|
1652
|
-
Time.parse('Tue Sep 2 09:00:00 PDT 1997'),
|
1653
|
-
Time.parse('Thu Sep 2 09:00:00 PDT 1999'),
|
1654
|
-
Time.parse('Sun Sep 2 09:00:00 PDT 2001')
|
1655
|
-
])
|
1656
|
-
end
|
1657
|
-
|
1658
|
-
# Ruby's Time class only properly handles years up to 2038, and so gives an incorrect
|
1659
|
-
# offset for the last two occurrences here.
|
1660
|
-
xit 'returns the correct result with an rrule of FREQ=YEARLY;COUNT=3;INTERVAL=100' do
|
1661
|
-
rrule = 'FREQ=YEARLY;COUNT=3;INTERVAL=100'
|
1662
|
-
dtstart = Time.parse('Tue Sep 2 09:00:00 PDT 1997')
|
1663
|
-
timezone = 'America/Los_Angeles'
|
1664
|
-
|
1665
|
-
rrule = RRule::Rule.new(rrule, dtstart: dtstart, tzid: timezone)
|
1666
|
-
expect(rrule.all).to match_array([
|
1667
|
-
Time.parse('Tue Sep 2 09:00:00 PDT 1997'),
|
1668
|
-
Time.parse('Mon Sep 2 09:00:00 PDT 2097'),
|
1669
|
-
Time.parse('Sat Sep 2 09:00:00 PDT 2197')
|
1670
|
-
])
|
1671
|
-
end
|
1672
|
-
|
1673
|
-
xit 'returns the correct result with an rrule of FREQ=YEARLY;INTERVAL=1;BYDAY=MO,-1TU;UNTIL=20160901T200000Z' do
|
1674
|
-
rrule = 'FREQ=YEARLY;INTERVAL=1;BYDAY=MO,-1TU;UNTIL=20160901T200000Z'
|
1675
|
-
dtstart = Time.parse('Mon Sep 1 19:00:00 PDT 2014')
|
1676
|
-
timezone = 'America/Los_Angeles'
|
1677
|
-
|
1678
|
-
rrule = RRule::Rule.new(rrule, dtstart: dtstart, tzid: timezone)
|
1679
|
-
expect(rrule.all).to match_array([
|
1680
|
-
Time.parse('Mon Sep 1 19:00:00 PDT 2014'),
|
1681
|
-
Time.parse('Mon Sep 8 19:00:00 PDT 2014'),
|
1682
|
-
Time.parse('Mon Sep 15 19:00:00 PDT 2014'),
|
1683
|
-
Time.parse('Mon Sep 22 19:00:00 PDT 2014'),
|
1684
|
-
Time.parse('Mon Sep 29 19:00:00 PDT 2014'),
|
1685
|
-
Time.parse('Mon Oct 6 19:00:00 PDT 2014'),
|
1686
|
-
Time.parse('Mon Oct 13 19:00:00 PDT 2014'),
|
1687
|
-
Time.parse('Mon Oct 20 19:00:00 PDT 2014'),
|
1688
|
-
Time.parse('Mon Oct 27 19:00:00 PDT 2014'),
|
1689
|
-
Time.parse('Mon Nov 3 19:00:00 PST 2014'),
|
1690
|
-
Time.parse('Mon Nov 10 19:00:00 PST 2014'),
|
1691
|
-
Time.parse('Mon Nov 17 19:00:00 PST 2014'),
|
1692
|
-
Time.parse('Mon Nov 24 19:00:00 PST 2014'),
|
1693
|
-
Time.parse('Mon Dec 1 19:00:00 PST 2014'),
|
1694
|
-
Time.parse('Mon Dec 8 19:00:00 PST 2014'),
|
1695
|
-
Time.parse('Mon Dec 15 19:00:00 PST 2014'),
|
1696
|
-
Time.parse('Mon Dec 22 19:00:00 PST 2014'),
|
1697
|
-
Time.parse('Mon Dec 29 19:00:00 PST 2014'),
|
1698
|
-
Time.parse('Tue Dec 30 19:00:00 PST 2014'),
|
1699
|
-
Time.parse('Mon Jan 5 19:00:00 PST 2015'),
|
1700
|
-
Time.parse('Mon Jan 12 19:00:00 PST 2015'),
|
1701
|
-
Time.parse('Mon Jan 19 19:00:00 PST 2015'),
|
1702
|
-
Time.parse('Mon Jan 26 19:00:00 PST 2015'),
|
1703
|
-
Time.parse('Mon Feb 2 19:00:00 PST 2015'),
|
1704
|
-
Time.parse('Mon Feb 9 19:00:00 PST 2015'),
|
1705
|
-
Time.parse('Mon Feb 16 19:00:00 PST 2015'),
|
1706
|
-
Time.parse('Mon Feb 23 19:00:00 PST 2015'),
|
1707
|
-
Time.parse('Mon Mar 2 19:00:00 PST 2015'),
|
1708
|
-
Time.parse('Mon Mar 9 19:00:00 PDT 2015'),
|
1709
|
-
Time.parse('Mon Mar 16 19:00:00 PDT 2015'),
|
1710
|
-
Time.parse('Mon Mar 23 19:00:00 PDT 2015'),
|
1711
|
-
Time.parse('Mon Mar 30 19:00:00 PDT 2015'),
|
1712
|
-
Time.parse('Mon Apr 6 19:00:00 PDT 2015'),
|
1713
|
-
Time.parse('Mon Apr 13 19:00:00 PDT 2015'),
|
1714
|
-
Time.parse('Mon Apr 20 19:00:00 PDT 2015'),
|
1715
|
-
Time.parse('Mon Apr 27 19:00:00 PDT 2015'),
|
1716
|
-
Time.parse('Mon May 4 19:00:00 PDT 2015'),
|
1717
|
-
Time.parse('Mon May 11 19:00:00 PDT 2015'),
|
1718
|
-
Time.parse('Mon May 18 19:00:00 PDT 2015'),
|
1719
|
-
Time.parse('Mon May 25 19:00:00 PDT 2015'),
|
1720
|
-
Time.parse('Mon Jun 1 19:00:00 PDT 2015'),
|
1721
|
-
Time.parse('Mon Jun 8 19:00:00 PDT 2015'),
|
1722
|
-
Time.parse('Mon Jun 15 19:00:00 PDT 2015'),
|
1723
|
-
Time.parse('Mon Jun 22 19:00:00 PDT 2015'),
|
1724
|
-
Time.parse('Mon Jun 29 19:00:00 PDT 2015'),
|
1725
|
-
Time.parse('Mon Jul 6 19:00:00 PDT 2015'),
|
1726
|
-
Time.parse('Mon Jul 13 19:00:00 PDT 2015'),
|
1727
|
-
Time.parse('Mon Jul 20 19:00:00 PDT 2015'),
|
1728
|
-
Time.parse('Mon Jul 27 19:00:00 PDT 2015'),
|
1729
|
-
Time.parse('Mon Aug 3 19:00:00 PDT 2015'),
|
1730
|
-
Time.parse('Mon Aug 10 19:00:00 PDT 2015'),
|
1731
|
-
Time.parse('Mon Aug 17 19:00:00 PDT 2015'),
|
1732
|
-
Time.parse('Mon Aug 24 19:00:00 PDT 2015'),
|
1733
|
-
Time.parse('Mon Aug 31 19:00:00 PDT 2015'),
|
1734
|
-
Time.parse('Mon Sep 7 19:00:00 PDT 2015'),
|
1735
|
-
Time.parse('Mon Sep 14 19:00:00 PDT 2015'),
|
1736
|
-
Time.parse('Mon Sep 21 19:00:00 PDT 2015'),
|
1737
|
-
Time.parse('Mon Sep 28 19:00:00 PDT 2015'),
|
1738
|
-
Time.parse('Mon Oct 5 19:00:00 PDT 2015'),
|
1739
|
-
Time.parse('Mon Oct 12 19:00:00 PDT 2015'),
|
1740
|
-
Time.parse('Mon Oct 19 19:00:00 PDT 2015'),
|
1741
|
-
Time.parse('Mon Oct 26 19:00:00 PDT 2015'),
|
1742
|
-
Time.parse('Mon Nov 2 19:00:00 PST 2015'),
|
1743
|
-
Time.parse('Mon Nov 9 19:00:00 PST 2015'),
|
1744
|
-
Time.parse('Mon Nov 16 19:00:00 PST 2015'),
|
1745
|
-
Time.parse('Mon Nov 23 19:00:00 PST 2015'),
|
1746
|
-
Time.parse('Mon Nov 30 19:00:00 PST 2015'),
|
1747
|
-
Time.parse('Mon Dec 7 19:00:00 PST 2015'),
|
1748
|
-
Time.parse('Mon Dec 14 19:00:00 PST 2015'),
|
1749
|
-
Time.parse('Mon Dec 21 19:00:00 PST 2015'),
|
1750
|
-
Time.parse('Mon Dec 28 19:00:00 PST 2015'),
|
1751
|
-
Time.parse('Tue Dec 29 19:00:00 PST 2015'),
|
1752
|
-
Time.parse('Mon Jan 4 19:00:00 PST 2016'),
|
1753
|
-
Time.parse('Mon Jan 11 19:00:00 PST 2016'),
|
1754
|
-
Time.parse('Mon Jan 18 19:00:00 PST 2016'),
|
1755
|
-
Time.parse('Mon Jan 25 19:00:00 PST 2016'),
|
1756
|
-
Time.parse('Mon Feb 1 19:00:00 PST 2016'),
|
1757
|
-
Time.parse('Mon Feb 8 19:00:00 PST 2016'),
|
1758
|
-
Time.parse('Mon Feb 15 19:00:00 PST 2016'),
|
1759
|
-
Time.parse('Mon Feb 22 19:00:00 PST 2016'),
|
1760
|
-
Time.parse('Mon Feb 29 19:00:00 PST 2016'),
|
1761
|
-
Time.parse('Mon Mar 7 19:00:00 PST 2016'),
|
1762
|
-
Time.parse('Mon Mar 14 19:00:00 PDT 2016'),
|
1763
|
-
Time.parse('Mon Mar 21 19:00:00 PDT 2016'),
|
1764
|
-
Time.parse('Mon Mar 28 19:00:00 PDT 2016'),
|
1765
|
-
Time.parse('Mon Apr 4 19:00:00 PDT 2016'),
|
1766
|
-
Time.parse('Mon Apr 11 19:00:00 PDT 2016'),
|
1767
|
-
Time.parse('Mon Apr 18 19:00:00 PDT 2016'),
|
1768
|
-
Time.parse('Mon Apr 25 19:00:00 PDT 2016'),
|
1769
|
-
Time.parse('Mon May 2 19:00:00 PDT 2016'),
|
1770
|
-
Time.parse('Mon May 9 19:00:00 PDT 2016'),
|
1771
|
-
Time.parse('Mon May 16 19:00:00 PDT 2016'),
|
1772
|
-
Time.parse('Mon May 23 19:00:00 PDT 2016'),
|
1773
|
-
Time.parse('Mon May 30 19:00:00 PDT 2016'),
|
1774
|
-
Time.parse('Mon Jun 6 19:00:00 PDT 2016'),
|
1775
|
-
Time.parse('Mon Jun 13 19:00:00 PDT 2016'),
|
1776
|
-
Time.parse('Mon Jun 20 19:00:00 PDT 2016'),
|
1777
|
-
Time.parse('Mon Jun 27 19:00:00 PDT 2016'),
|
1778
|
-
Time.parse('Mon Jul 4 19:00:00 PDT 2016'),
|
1779
|
-
Time.parse('Mon Jul 11 19:00:00 PDT 2016'),
|
1780
|
-
Time.parse('Mon Jul 18 19:00:00 PDT 2016'),
|
1781
|
-
Time.parse('Mon Jul 25 19:00:00 PDT 2016'),
|
1782
|
-
Time.parse('Mon Aug 1 19:00:00 PDT 2016'),
|
1783
|
-
Time.parse('Mon Aug 8 19:00:00 PDT 2016'),
|
1784
|
-
Time.parse('Mon Aug 15 19:00:00 PDT 2016'),
|
1785
|
-
Time.parse('Mon Aug 22 19:00:00 PDT 2016'),
|
1786
|
-
Time.parse('Mon Aug 29 19:00:00 PDT 2016')
|
1787
|
-
])
|
1788
|
-
end
|
1789
|
-
end
|
1790
|
-
|
1791
|
-
describe '#between' do
|
1792
|
-
context 'server env timezone is different from the passed timezone' do
|
1793
|
-
around do |example|
|
1794
|
-
old_tz = ENV['TZ']
|
1795
|
-
ENV['TZ'] = 'UTC'
|
1796
|
-
example.run
|
1797
|
-
ENV['TZ'] = old_tz
|
1798
|
-
end
|
1799
|
-
|
1800
|
-
it 'works when the day in the given timezone is different from the day in the server timezone' do
|
1801
|
-
# any time from 17:00 to 23:59:59 broke old code, test all hours of the day
|
1802
|
-
0.upto(23) do |hour|
|
1803
|
-
dtstart = Time.new(2018, 7, 1, hour, 0, 0, '-07:00')
|
1804
|
-
rrule = RRule::Rule.new('FREQ=WEEKLY', dtstart: dtstart, tzid: 'America/Los_Angeles')
|
1805
|
-
expect(rrule.between(dtstart, dtstart + 1.second)).to eq([dtstart])
|
1806
|
-
end
|
1807
|
-
end
|
1808
|
-
end
|
1809
|
-
|
1810
|
-
it 'returns the correct result with an rrule of FREQ=WEEKLY;BYSECOND=59;BYMINUTE=59;BYHOUR=23;WKST=SU' do
|
1811
|
-
rrule = 'FREQ=WEEKLY;BYSECOND=59;BYMINUTE=59;BYHOUR=23;WKST=SU'
|
1812
|
-
dtstart = DateTime.parse('2018-02-04 04:00:00 +1000')
|
1813
|
-
timezone = 'Brisbane'
|
1814
|
-
|
1815
|
-
rrule = RRule::Rule.new(rrule, dtstart: dtstart, tzid: timezone)
|
1816
|
-
expect(rrule.between(Time.parse('Sun, 08 Apr 2018 00:00:00 +0000'), Time.parse('Fri, 08 Jun 2018 23:59:59 +0000'))).to match_array([
|
1817
|
-
Time.parse('Sun, 08 Apr 2018 23:59:59 +1000'),
|
1818
|
-
Time.parse('Sun, 15 Apr 2018 23:59:59 +1000'),
|
1819
|
-
Time.parse('Sun, 22 Apr 2018 23:59:59 +1000'),
|
1820
|
-
Time.parse('Sun, 29 Apr 2018 23:59:59 +1000'),
|
1821
|
-
Time.parse('Sun, 06 May 2018 23:59:59 +1000'),
|
1822
|
-
Time.parse('Sun, 13 May 2018 23:59:59 +1000'),
|
1823
|
-
Time.parse('Sun, 20 May 2018 23:59:59 +1000'),
|
1824
|
-
Time.parse('Sun, 27 May 2018 23:59:59 +1000'),
|
1825
|
-
Time.parse('Sun, 03 Jun 2018 23:59:59 +1000'),
|
1826
|
-
])
|
1827
|
-
end
|
1828
|
-
|
1829
|
-
it 'returns the correct result with an rrule of FREQ=DAILY;INTERVAL=2' do
|
1830
|
-
rrule = 'FREQ=DAILY;INTERVAL=2'
|
1831
|
-
dtstart = Time.parse('Tue Sep 2 06:00:00 PDT 1997')
|
1832
|
-
timezone = 'America/New_York'
|
1833
|
-
|
1834
|
-
rrule = RRule::Rule.new(rrule, dtstart: dtstart, tzid: timezone)
|
1835
|
-
expect(rrule.between(Time.parse('Tue Sep 2 06:00:00 PDT 1997'), Time.parse('Wed Oct 22 06:00:00 PDT 1997'))).to match_array([
|
1836
|
-
Time.parse('Tue Sep 2 06:00:00 PDT 1997'),
|
1837
|
-
Time.parse('Thu Sep 4 06:00:00 PDT 1997'),
|
1838
|
-
Time.parse('Sat Sep 6 06:00:00 PDT 1997'),
|
1839
|
-
Time.parse('Mon Sep 8 06:00:00 PDT 1997'),
|
1840
|
-
Time.parse('Wed Sep 10 06:00:00 PDT 1997'),
|
1841
|
-
Time.parse('Fri Sep 12 06:00:00 PDT 1997'),
|
1842
|
-
Time.parse('Sun Sep 14 06:00:00 PDT 1997'),
|
1843
|
-
Time.parse('Tue Sep 16 06:00:00 PDT 1997'),
|
1844
|
-
Time.parse('Thu Sep 18 06:00:00 PDT 1997'),
|
1845
|
-
Time.parse('Sat Sep 20 06:00:00 PDT 1997'),
|
1846
|
-
Time.parse('Mon Sep 22 06:00:00 PDT 1997'),
|
1847
|
-
Time.parse('Wed Sep 24 06:00:00 PDT 1997'),
|
1848
|
-
Time.parse('Fri Sep 26 06:00:00 PDT 1997'),
|
1849
|
-
Time.parse('Sun Sep 28 06:00:00 PDT 1997'),
|
1850
|
-
Time.parse('Tue Sep 30 06:00:00 PDT 1997'),
|
1851
|
-
Time.parse('Thu Oct 2 06:00:00 PDT 1997'),
|
1852
|
-
Time.parse('Sat Oct 4 06:00:00 PDT 1997'),
|
1853
|
-
Time.parse('Mon Oct 6 06:00:00 PDT 1997'),
|
1854
|
-
Time.parse('Wed Oct 8 06:00:00 PDT 1997'),
|
1855
|
-
Time.parse('Fri Oct 10 06:00:00 PDT 1997'),
|
1856
|
-
Time.parse('Sun Oct 12 06:00:00 PDT 1997'),
|
1857
|
-
Time.parse('Tue Oct 14 06:00:00 PDT 1997'),
|
1858
|
-
Time.parse('Thu Oct 16 06:00:00 PDT 1997'),
|
1859
|
-
Time.parse('Sat Oct 18 06:00:00 PDT 1997'),
|
1860
|
-
Time.parse('Mon Oct 20 06:00:00 PDT 1997'),
|
1861
|
-
Time.parse('Wed Oct 22 06:00:00 PDT 1997')
|
1862
|
-
])
|
1863
|
-
end
|
1864
|
-
|
1865
|
-
it 'returns the correct result with an rrule of FREQ=DAILY;INTERVAL=2 and a limit' do
|
1866
|
-
rrule = 'FREQ=DAILY;INTERVAL=2'
|
1867
|
-
dtstart = Time.parse('Tue Sep 2 06:00:00 PDT 1997')
|
1868
|
-
timezone = 'America/New_York'
|
1869
|
-
|
1870
|
-
rrule = RRule::Rule.new(rrule, dtstart: dtstart, tzid: timezone)
|
1871
|
-
expect(rrule.between(Time.parse('Tue Sep 2 06:00:00 PDT 1997'), Time.parse('Wed Oct 22 06:00:00 PDT 1997'), limit: 5)).to match_array([
|
1872
|
-
Time.parse('Tue Sep 2 06:00:00 PDT 1997'),
|
1873
|
-
Time.parse('Thu Sep 4 06:00:00 PDT 1997'),
|
1874
|
-
Time.parse('Sat Sep 6 06:00:00 PDT 1997'),
|
1875
|
-
Time.parse('Mon Sep 8 06:00:00 PDT 1997'),
|
1876
|
-
Time.parse('Wed Sep 10 06:00:00 PDT 1997')
|
1877
|
-
])
|
1878
|
-
end
|
1879
|
-
|
1880
|
-
it 'returns the correct result with an rrule of FREQ=WEEKLY;INTERVAL=2;WKST=SU' do
|
1881
|
-
rrule = 'FREQ=WEEKLY;INTERVAL=2;WKST=SU'
|
1882
|
-
dtstart = Time.parse('Tue Sep 2 06:00:00 PDT 1997')
|
1883
|
-
timezone = 'America/New_York'
|
1884
|
-
|
1885
|
-
rrule = RRule::Rule.new(rrule, dtstart: dtstart, tzid: timezone)
|
1886
|
-
expect(rrule.between(Time.parse('Tue Sep 2 06:00:00 PDT 1997'), Time.parse('Tue Feb 17 06:00:00 PST 1998'))).to match_array([
|
1887
|
-
Time.parse('Tue Sep 2 06:00:00 PDT 1997'),
|
1888
|
-
Time.parse('Tue Sep 16 06:00:00 PDT 1997'),
|
1889
|
-
Time.parse('Tue Sep 30 06:00:00 PDT 1997'),
|
1890
|
-
Time.parse('Tue Oct 14 06:00:00 PDT 1997'),
|
1891
|
-
Time.parse('Tue Oct 28 06:00:00 PST 1997'),
|
1892
|
-
Time.parse('Tue Nov 11 06:00:00 PST 1997'),
|
1893
|
-
Time.parse('Tue Nov 25 06:00:00 PST 1997'),
|
1894
|
-
Time.parse('Tue Dec 9 06:00:00 PST 1997'),
|
1895
|
-
Time.parse('Tue Dec 23 06:00:00 PST 1997'),
|
1896
|
-
Time.parse('Tue Jan 6 06:00:00 PST 1998'),
|
1897
|
-
Time.parse('Tue Jan 20 06:00:00 PST 1998'),
|
1898
|
-
Time.parse('Tue Feb 3 06:00:00 PST 1998'),
|
1899
|
-
Time.parse('Tue Feb 17 06:00:00 PST 1998')
|
1900
|
-
])
|
1901
|
-
end
|
1902
|
-
|
1903
|
-
it 'returns the correct result with an rrule of FREQ=MONTHLY;BYMONTHDAY=-3' do
|
1904
|
-
rrule = 'FREQ=MONTHLY;BYMONTHDAY=-3'
|
1905
|
-
dtstart = Time.parse('Sun Sep 28 06:00:00 PDT 1997')
|
1906
|
-
timezone = 'America/New_York'
|
1907
|
-
|
1908
|
-
rrule = RRule::Rule.new(rrule, dtstart: dtstart, tzid: timezone)
|
1909
|
-
expect(rrule.between(Time.parse('Sun Sep 28 06:00:00 PDT 1997'), Time.parse('Thu Feb 26 06:00:00 PST 1998'))).to match_array([
|
1910
|
-
Time.parse('Sun Sep 28 06:00:00 PDT 1997'),
|
1911
|
-
Time.parse('Wed Oct 29 06:00:00 PST 1997'),
|
1912
|
-
Time.parse('Fri Nov 28 06:00:00 PST 1997'),
|
1913
|
-
Time.parse('Mon Dec 29 06:00:00 PST 1997'),
|
1914
|
-
Time.parse('Thu Jan 29 06:00:00 PST 1998'),
|
1915
|
-
Time.parse('Thu Feb 26 06:00:00 PST 1998')
|
1916
|
-
])
|
1917
|
-
end
|
1918
|
-
|
1919
|
-
it 'returns the correct result with an rrule of FREQ=MONTHLY;INTERVAL=2;BYDAY=TU' do
|
1920
|
-
rrule = 'FREQ=MONTHLY;INTERVAL=2;BYDAY=TU'
|
1921
|
-
dtstart = Time.parse('Tue Sep 2 06:00:00 PDT 1997')
|
1922
|
-
timezone = 'America/New_York'
|
1923
|
-
|
1924
|
-
rrule = RRule::Rule.new(rrule, dtstart: dtstart, tzid: timezone)
|
1925
|
-
expect(rrule.between(Time.parse('Tue Sep 2 06:00:00 PDT 1997'), Time.parse('Tue Mar 31 06:00:00 PST 1998'))).to match_array([
|
1926
|
-
Time.parse('Tue Sep 2 06:00:00 PDT 1997'),
|
1927
|
-
Time.parse('Tue Sep 9 06:00:00 PDT 1997'),
|
1928
|
-
Time.parse('Tue Sep 16 06:00:00 PDT 1997'),
|
1929
|
-
Time.parse('Tue Sep 23 06:00:00 PDT 1997'),
|
1930
|
-
Time.parse('Tue Sep 30 06:00:00 PDT 1997'),
|
1931
|
-
Time.parse('Tue Nov 4 06:00:00 PST 1997'),
|
1932
|
-
Time.parse('Tue Nov 11 06:00:00 PST 1997'),
|
1933
|
-
Time.parse('Tue Nov 18 06:00:00 PST 1997'),
|
1934
|
-
Time.parse('Tue Nov 25 06:00:00 PST 1997'),
|
1935
|
-
Time.parse('Tue Jan 6 06:00:00 PST 1998'),
|
1936
|
-
Time.parse('Tue Jan 13 06:00:00 PST 1998'),
|
1937
|
-
Time.parse('Tue Jan 20 06:00:00 PST 1998'),
|
1938
|
-
Time.parse('Tue Jan 27 06:00:00 PST 1998'),
|
1939
|
-
Time.parse('Tue Mar 3 06:00:00 PST 1998'),
|
1940
|
-
Time.parse('Tue Mar 10 06:00:00 PST 1998'),
|
1941
|
-
Time.parse('Tue Mar 17 06:00:00 PST 1998'),
|
1942
|
-
Time.parse('Tue Mar 24 06:00:00 PST 1998'),
|
1943
|
-
Time.parse('Tue Mar 31 06:00:00 PST 1998')
|
1944
|
-
])
|
1945
|
-
end
|
1946
|
-
|
1947
|
-
xit 'returns the correct result with an rrule of FREQ=YEARLY;BYDAY=20MO' do
|
1948
|
-
rrule = 'FREQ=YEARLY;BYDAY=20MO'
|
1949
|
-
dtstart = Time.parse('Mon May 19 06:00:00 PDT 1997')
|
1950
|
-
timezone = 'America/New_York'
|
1951
|
-
|
1952
|
-
rrule = RRule::Rule.new(rrule, dtstart: dtstart, tzid: timezone)
|
1953
|
-
expect(rrule.between(Time.parse('Mon May 19 06:00:00 PDT 1997'), Time.parse('Mon May 17 06:00:00 PDT 1999'))).to match_array([
|
1954
|
-
Time.parse('Mon May 19 06:00:00 PDT 1997'),
|
1955
|
-
Time.parse('Mon May 18 06:00:00 PDT 1998'),
|
1956
|
-
Time.parse('Mon May 17 06:00:00 PDT 1999')
|
1957
|
-
])
|
1958
|
-
end
|
1959
|
-
|
1960
|
-
it 'returns the correct result with an rrule of FREQ=YEARLY;BYWEEKNO=20;BYDAY=MO' do
|
1961
|
-
rrule = 'FREQ=YEARLY;BYWEEKNO=20;BYDAY=MO'
|
1962
|
-
dtstart = Time.parse('Mon May 12 06:00:00 PDT 1997')
|
1963
|
-
timezone = 'America/New_York'
|
1964
|
-
|
1965
|
-
rrule = RRule::Rule.new(rrule, dtstart: dtstart, tzid: timezone)
|
1966
|
-
expect(rrule.between(Time.parse('Mon May 12 06:00:00 PDT 1997'), Time.parse('Mon May 17 06:00:00 PDT 1999'))).to match_array([
|
1967
|
-
Time.parse('Mon May 12 06:00:00 PDT 1997'),
|
1968
|
-
Time.parse('Mon May 11 06:00:00 PDT 1998'),
|
1969
|
-
Time.parse('Mon May 17 06:00:00 PDT 1999')
|
1970
|
-
])
|
1971
|
-
end
|
1972
|
-
|
1973
|
-
it 'returns the correct result with an rrule of FREQ=YEARLY;BYMONTH=3;BYDAY=TH' do
|
1974
|
-
rrule = 'FREQ=YEARLY;BYMONTH=3;BYDAY=TH'
|
1975
|
-
dtstart = Time.parse('Thu Mar 13 06:00:00 PST 1997')
|
1976
|
-
timezone = 'America/New_York'
|
1977
|
-
|
1978
|
-
rrule = RRule::Rule.new(rrule, dtstart: dtstart, tzid: timezone)
|
1979
|
-
expect(rrule.between(Time.parse('Thu Mar 13 06:00:00 PST 1997'), Time.parse('Thu Mar 25 06:00:00 PST 1999'))).to match_array([
|
1980
|
-
Time.parse('Thu Mar 13 06:00:00 PST 1997'),
|
1981
|
-
Time.parse('Thu Mar 20 06:00:00 PST 1997'),
|
1982
|
-
Time.parse('Thu Mar 27 06:00:00 PST 1997'),
|
1983
|
-
Time.parse('Thu Mar 5 06:00:00 PST 1998'),
|
1984
|
-
Time.parse('Thu Mar 12 06:00:00 PST 1998'),
|
1985
|
-
Time.parse('Thu Mar 19 06:00:00 PST 1998'),
|
1986
|
-
Time.parse('Thu Mar 26 06:00:00 PST 1998'),
|
1987
|
-
Time.parse('Thu Mar 4 06:00:00 PST 1999'),
|
1988
|
-
Time.parse('Thu Mar 11 06:00:00 PST 1999'),
|
1989
|
-
Time.parse('Thu Mar 18 06:00:00 PST 1999'),
|
1990
|
-
Time.parse('Thu Mar 25 06:00:00 PST 1999')
|
1991
|
-
])
|
1992
|
-
end
|
1993
|
-
|
1994
|
-
it 'returns the correct result with an rrule of FREQ=YEARLY;BYDAY=TH;BYMONTH=6,7,8' do
|
1995
|
-
rrule = 'FREQ=YEARLY;BYDAY=TH;BYMONTH=6,7,8'
|
1996
|
-
dtstart = Time.parse('Thu Jun 5 06:00:00 PDT 1997')
|
1997
|
-
timezone = 'America/New_York'
|
1998
|
-
|
1999
|
-
rrule = RRule::Rule.new(rrule, dtstart: dtstart, tzid: timezone)
|
2000
|
-
expect(rrule.between(Time.parse('Thu Jun 5 06:00:00 PDT 1997'), Time.parse('Thu Aug 26 06:00:00 PDT 1999'))).to match_array([
|
2001
|
-
Time.parse('Thu Jun 5 06:00:00 PDT 1997'),
|
2002
|
-
Time.parse('Thu Jun 12 06:00:00 PDT 1997'),
|
2003
|
-
Time.parse('Thu Jun 19 06:00:00 PDT 1997'),
|
2004
|
-
Time.parse('Thu Jun 26 06:00:00 PDT 1997'),
|
2005
|
-
Time.parse('Thu Jul 3 06:00:00 PDT 1997'),
|
2006
|
-
Time.parse('Thu Jul 10 06:00:00 PDT 1997'),
|
2007
|
-
Time.parse('Thu Jul 17 06:00:00 PDT 1997'),
|
2008
|
-
Time.parse('Thu Jul 24 06:00:00 PDT 1997'),
|
2009
|
-
Time.parse('Thu Jul 31 06:00:00 PDT 1997'),
|
2010
|
-
Time.parse('Thu Aug 7 06:00:00 PDT 1997'),
|
2011
|
-
Time.parse('Thu Aug 14 06:00:00 PDT 1997'),
|
2012
|
-
Time.parse('Thu Aug 21 06:00:00 PDT 1997'),
|
2013
|
-
Time.parse('Thu Aug 28 06:00:00 PDT 1997'),
|
2014
|
-
Time.parse('Thu Jun 4 06:00:00 PDT 1998'),
|
2015
|
-
Time.parse('Thu Jun 11 06:00:00 PDT 1998'),
|
2016
|
-
Time.parse('Thu Jun 18 06:00:00 PDT 1998'),
|
2017
|
-
Time.parse('Thu Jun 25 06:00:00 PDT 1998'),
|
2018
|
-
Time.parse('Thu Jul 2 06:00:00 PDT 1998'),
|
2019
|
-
Time.parse('Thu Jul 9 06:00:00 PDT 1998'),
|
2020
|
-
Time.parse('Thu Jul 16 06:00:00 PDT 1998'),
|
2021
|
-
Time.parse('Thu Jul 23 06:00:00 PDT 1998'),
|
2022
|
-
Time.parse('Thu Jul 30 06:00:00 PDT 1998'),
|
2023
|
-
Time.parse('Thu Aug 6 06:00:00 PDT 1998'),
|
2024
|
-
Time.parse('Thu Aug 13 06:00:00 PDT 1998'),
|
2025
|
-
Time.parse('Thu Aug 20 06:00:00 PDT 1998'),
|
2026
|
-
Time.parse('Thu Aug 27 06:00:00 PDT 1998'),
|
2027
|
-
Time.parse('Thu Jun 3 06:00:00 PDT 1999'),
|
2028
|
-
Time.parse('Thu Jun 10 06:00:00 PDT 1999'),
|
2029
|
-
Time.parse('Thu Jun 17 06:00:00 PDT 1999'),
|
2030
|
-
Time.parse('Thu Jun 24 06:00:00 PDT 1999'),
|
2031
|
-
Time.parse('Thu Jul 1 06:00:00 PDT 1999'),
|
2032
|
-
Time.parse('Thu Jul 8 06:00:00 PDT 1999'),
|
2033
|
-
Time.parse('Thu Jul 15 06:00:00 PDT 1999'),
|
2034
|
-
Time.parse('Thu Jul 22 06:00:00 PDT 1999'),
|
2035
|
-
Time.parse('Thu Jul 29 06:00:00 PDT 1999'),
|
2036
|
-
Time.parse('Thu Aug 5 06:00:00 PDT 1999'),
|
2037
|
-
Time.parse('Thu Aug 12 06:00:00 PDT 1999'),
|
2038
|
-
Time.parse('Thu Aug 19 06:00:00 PDT 1999'),
|
2039
|
-
Time.parse('Thu Aug 26 06:00:00 PDT 1999')
|
2040
|
-
])
|
2041
|
-
end
|
2042
|
-
|
2043
|
-
it 'returns the correct result with an rrule of FREQ=MONTHLY;BYDAY=SA;BYMONTHDAY=7,8,9,10,11,12,13' do
|
2044
|
-
rrule = 'FREQ=MONTHLY;BYDAY=SA;BYMONTHDAY=7,8,9,10,11,12,13'
|
2045
|
-
dtstart = Time.parse('Sat Sep 13 06:00:00 PDT 1997')
|
2046
|
-
timezone = 'America/New_York'
|
2047
|
-
|
2048
|
-
rrule = RRule::Rule.new(rrule, dtstart: dtstart, tzid: timezone)
|
2049
|
-
expect(rrule.between(Time.parse('Sat Sep 13 06:00:00 PDT 1997'), Time.parse('Sat Jun 13 06:00:00 PDT 1998'))).to match_array([
|
2050
|
-
Time.parse('Sat Sep 13 06:00:00 PDT 1997'),
|
2051
|
-
Time.parse('Sat Oct 11 06:00:00 PDT 1997'),
|
2052
|
-
Time.parse('Sat Nov 8 06:00:00 PST 1997'),
|
2053
|
-
Time.parse('Sat Dec 13 06:00:00 PST 1997'),
|
2054
|
-
Time.parse('Sat Jan 10 06:00:00 PST 1998'),
|
2055
|
-
Time.parse('Sat Feb 7 06:00:00 PST 1998'),
|
2056
|
-
Time.parse('Sat Mar 7 06:00:00 PST 1998'),
|
2057
|
-
Time.parse('Sat Apr 11 06:00:00 PDT 1998'),
|
2058
|
-
Time.parse('Sat May 9 06:00:00 PDT 1998'),
|
2059
|
-
Time.parse('Sat Jun 13 06:00:00 PDT 1998')
|
2060
|
-
])
|
2061
|
-
end
|
2062
|
-
|
2063
|
-
it 'returns the correct result with an rrule of FREQ=YEARLY;INTERVAL=4;BYMONTH=11;BYDAY=TU;BYMONTHDAY=2,3,4,5,6,7,8' do
|
2064
|
-
rrule = 'FREQ=YEARLY;INTERVAL=4;BYMONTH=11;BYDAY=TU;BYMONTHDAY=2,3,4,5,6,7,8'
|
2065
|
-
dtstart = Time.parse('Tue Nov 5 06:00:00 PST 1996')
|
2066
|
-
timezone = 'America/New_York'
|
2067
|
-
|
2068
|
-
rrule = RRule::Rule.new(rrule, dtstart: dtstart, tzid: timezone)
|
2069
|
-
expect(rrule.between(Time.parse('Tue Nov 5 06:00:00 PST 1996'), Time.parse('Tue Nov 2 06:00:00 PST 2004'))).to match_array([
|
2070
|
-
Time.parse('Tue Nov 5 06:00:00 PST 1996'),
|
2071
|
-
Time.parse('Tue Nov 7 06:00:00 PST 2000'),
|
2072
|
-
Time.parse('Tue Nov 2 06:00:00 PST 2004')
|
2073
|
-
])
|
2074
|
-
end
|
2075
|
-
|
2076
|
-
it 'returns the correct result with an rrule of FREQ=MONTHLY;BYDAY=MO,TU,WE,TH,FR;BYSETPOS=-2' do
|
2077
|
-
rrule = 'FREQ=MONTHLY;BYDAY=MO,TU,WE,TH,FR;BYSETPOS=-2'
|
2078
|
-
dtstart = Time.parse('Mon Sep 29 06:00:00 PDT 1997')
|
2079
|
-
timezone = 'America/New_York'
|
2080
|
-
|
2081
|
-
rrule = RRule::Rule.new(rrule, dtstart: dtstart, tzid: timezone)
|
2082
|
-
expect(rrule.between(Time.parse('Mon Sep 29 06:00:00 PDT 1997'), Time.parse('Mon Mar 30 06:00:00 PST 1998'))).to match_array([
|
2083
|
-
Time.parse('Mon Sep 29 06:00:00 PDT 1997'),
|
2084
|
-
Time.parse('Thu Oct 30 06:00:00 PST 1997'),
|
2085
|
-
Time.parse('Thu Nov 27 06:00:00 PST 1997'),
|
2086
|
-
Time.parse('Tue Dec 30 06:00:00 PST 1997'),
|
2087
|
-
Time.parse('Thu Jan 29 06:00:00 PST 1998'),
|
2088
|
-
Time.parse('Thu Feb 26 06:00:00 PST 1998'),
|
2089
|
-
Time.parse('Mon Mar 30 06:00:00 PST 1998')
|
2090
|
-
])
|
2091
|
-
end
|
2092
|
-
|
2093
|
-
it 'returns the correct result with an rrule of FREQ=DAILY;COUNT=7 when the range extends beyond the end of the recurrence (run out of COUNT before the range ends)' do
|
2094
|
-
rrule ='FREQ=DAILY;COUNT=7'
|
2095
|
-
dtstart = Time.parse('Thu Feb 6 16:00:00 PST 2014')
|
2096
|
-
timezone = 'America/Los_Angeles'
|
2097
|
-
|
2098
|
-
rrule = RRule::Rule.new(rrule, dtstart: dtstart, tzid: timezone)
|
2099
|
-
expect(rrule.between(Time.parse('Sun Feb 9 16:00:00 PST 2014'), Time.parse('Wed Feb 19 16:00:00 PST 2014'))).to match_array([
|
2100
|
-
Time.parse('Sun Feb 9 16:00:00 PST 2014'),
|
2101
|
-
Time.parse('Mon Feb 10 16:00:00 PST 2014'),
|
2102
|
-
Time.parse('Tue Feb 11 16:00:00 PST 2014'),
|
2103
|
-
Time.parse('Wed Feb 12 16:00:00 PST 2014')
|
2104
|
-
])
|
2105
|
-
end
|
2106
|
-
|
2107
|
-
it 'returns the correct result with an rrule of FREQ=DAILY;COUNT=10 and an EXDATE' do
|
2108
|
-
rrule = 'FREQ=DAILY;COUNT=10'
|
2109
|
-
dtstart = Time.parse('Tue Sep 2 06:00:00 PST 1997')
|
2110
|
-
timezone = 'America/New_York'
|
2111
|
-
|
2112
|
-
rrule = RRule::Rule.new(rrule, dtstart: dtstart, tzid: timezone, exdate: [Time.parse('Fri Sep 5 06:00:00 PST 1997'), Time.parse('Mon Sep 8 06:00:00 PST 1997')])
|
2113
|
-
expect(rrule.all).to match_array([
|
2114
|
-
Time.parse('Tue Sep 2 06:00:00 PST 1997'),
|
2115
|
-
Time.parse('Wed Sep 3 06:00:00 PST 1997'),
|
2116
|
-
Time.parse('Thu Sep 4 06:00:00 PST 1997'),
|
2117
|
-
Time.parse('Sat Sep 6 06:00:00 PST 1997'),
|
2118
|
-
Time.parse('Sun Sep 7 06:00:00 PST 1997'),
|
2119
|
-
Time.parse('Tue Sep 9 06:00:00 PST 1997'),
|
2120
|
-
Time.parse('Wed Sep 10 06:00:00 PST 1997'),
|
2121
|
-
Time.parse('Thu Sep 11 06:00:00 PST 1997')
|
2122
|
-
])
|
2123
|
-
end
|
2124
|
-
|
2125
|
-
it 'returns the correct result with an rrule of FREQ=WEEKLY;INTERVAL=4;BYDAY=TH' do
|
2126
|
-
rrule = 'FREQ=WEEKLY;INTERVAL=4;BYDAY=TH'
|
2127
|
-
timezone = 'America/Los_Angeles'
|
2128
|
-
dtstart = Time.parse('Thu Jan 28 17:00:00 PST 2016').in_time_zone(timezone)
|
2129
|
-
|
2130
|
-
rrule = RRule.parse(rrule, dtstart: dtstart, tzid: timezone)
|
2131
|
-
expect(rrule.between(
|
2132
|
-
Time.parse('Tue May 24 14:34:59 PDT 2016'),
|
2133
|
-
Time.parse('Sun Jul 24 14:35:09 PDT 2016')
|
2134
|
-
)).to match_array([
|
2135
|
-
Time.parse('Thu Jun 16 17:00:00 PDT 2016'),
|
2136
|
-
Time.parse('Thu Jul 14 17:00:00 PDT 2016')
|
2137
|
-
])
|
2138
|
-
end
|
2139
|
-
|
2140
|
-
it 'returns the correct result with a date start right on the year border' do
|
2141
|
-
rrule = 'FREQ=DAILY'
|
2142
|
-
timezone = 'America/Los_Angeles'
|
2143
|
-
dtstart = Time.parse('Thu Dec 31 16:00:00 PST 2015')
|
2144
|
-
|
2145
|
-
rule = RRule.parse(rrule, dtstart: dtstart, tzid: timezone)
|
2146
|
-
expect(rule.between(dtstart - 1.month, dtstart + 1.month).first).to eql(dtstart)
|
2147
|
-
end
|
2148
|
-
|
2149
|
-
it 'returns the correct result when BYSETPOS specifies a position that does not exist' do
|
2150
|
-
rrule = 'FREQ=MONTHLY;BYDAY=WE;BYSETPOS=5'
|
2151
|
-
timezone = 'America/Chicago'
|
2152
|
-
dtstart = Time.parse('Wed Jan 30 09:00:00 PST 2013')
|
2153
|
-
|
2154
|
-
rule = RRule.parse(rrule, dtstart: dtstart, tzid: timezone)
|
2155
|
-
start_time = Time.parse('Sun Jul 31 22:00:00 PDT 2016')
|
2156
|
-
expected_instance = Time.parse('Wed Aug 31 09:00:00 PDT 2016')
|
2157
|
-
end_time = Time.parse('Wed Aug 31 21:59:59 PDT 2016')
|
2158
|
-
expect(rule.between(start_time, end_time)).to eql([expected_instance])
|
2159
|
-
end
|
2160
|
-
|
2161
|
-
|
2162
|
-
describe 'iterating with a floor_date' do
|
2163
|
-
describe 'No COUNT or INTERVAL > 1' do
|
2164
|
-
it 'still limits to the given range' do
|
2165
|
-
rrule = 'FREQ=DAILY'
|
2166
|
-
dtstart = Time.parse('Tue Sep 2 06:00:00 PDT 1997')
|
2167
|
-
timezone = 'America/New_York'
|
2168
|
-
|
2169
|
-
rrule = RRule::Rule.new(rrule, dtstart: dtstart, tzid: timezone)
|
2170
|
-
|
2171
|
-
start_time = Time.parse('Mon Sep 3 06:00:00 PDT 2018')
|
2172
|
-
end_time = Time.parse('Thu Sep 10 06:00:00 PDT 2018')
|
2173
|
-
|
2174
|
-
expect(rrule.between(start_time, end_time).take(3)).to match_array([
|
2175
|
-
Time.parse('Tue Sep 3 06:00:00 PDT 2018'),
|
2176
|
-
Time.parse('Wed Sep 4 06:00:00 PDT 2018'),
|
2177
|
-
Time.parse('Thu Sep 5 06:00:00 PDT 2018')
|
2178
|
-
])
|
2179
|
-
end
|
2180
|
-
end
|
2181
|
-
|
2182
|
-
describe 'COUNT present' do
|
2183
|
-
it 'still limits to the given range' do
|
2184
|
-
rrule = 'FREQ=DAILY;COUNT=10'
|
2185
|
-
dtstart = Time.parse('Tue Sep 2 06:00:00 PDT 1997')
|
2186
|
-
timezone = 'America/New_York'
|
2187
|
-
|
2188
|
-
rrule = RRule::Rule.new(rrule, dtstart: dtstart, tzid: timezone)
|
2189
|
-
|
2190
|
-
start_time = Time.parse('Wed Sep 3 06:00:00 PDT 1997')
|
2191
|
-
end_time = Time.parse('Thu Sep 10 06:00:00 PDT 2018')
|
2192
|
-
|
2193
|
-
expect(rrule.between(start_time, end_time).take(3)).to match_array([
|
2194
|
-
Time.parse('Tue Sep 3 06:00:00 PDT 1997'),
|
2195
|
-
Time.parse('Wed Sep 4 06:00:00 PDT 1997'),
|
2196
|
-
Time.parse('Thu Sep 5 06:00:00 PDT 1997'),
|
2197
|
-
])
|
2198
|
-
end
|
2199
|
-
end
|
2200
|
-
|
2201
|
-
describe 'INTERVAL present' do
|
2202
|
-
it 'still limits to the given range' do
|
2203
|
-
rrule = 'FREQ=DAILY;INTERVAL=10'
|
2204
|
-
dtstart = Time.parse('Tue Sep 2 06:00:00 PDT 1997')
|
2205
|
-
timezone = 'America/New_York'
|
2206
|
-
|
2207
|
-
rrule = RRule::Rule.new(rrule, dtstart: dtstart, tzid: timezone)
|
2208
|
-
|
2209
|
-
start_time = Time.parse('Wed Sep 3 06:00:00 PDT 1997')
|
2210
|
-
end_time = Time.parse('Thu Sep 30 06:00:00 PDT 2018')
|
2211
|
-
|
2212
|
-
expect(rrule.between(start_time, end_time).take(3)).to match_array([
|
2213
|
-
Time.parse('Tue Sep 12 06:00:00 PDT 1997'),
|
2214
|
-
Time.parse('Fri Sep 22 06:00:00 PDT 1997'),
|
2215
|
-
Time.parse('Mon Oct 02 06:00:00 PDT 1997'),
|
2216
|
-
])
|
2217
|
-
end
|
2218
|
-
end
|
2219
|
-
|
2220
|
-
describe 'INTERVAL AND COUNT present' do
|
2221
|
-
it 'still limits to the given range' do
|
2222
|
-
rrule = 'FREQ=DAILY;INTERVAL=10;COUNT=5'
|
2223
|
-
dtstart = Time.parse('Tue Sep 2 06:00:00 PDT 1997')
|
2224
|
-
timezone = 'America/New_York'
|
2225
|
-
|
2226
|
-
rrule = RRule::Rule.new(rrule, dtstart: dtstart, tzid: timezone)
|
2227
|
-
|
2228
|
-
start_time = Time.parse('Wed Sep 3 06:00:00 PDT 1997')
|
2229
|
-
end_time = Time.parse('Thu Sep 30 06:00:00 PDT 2018')
|
2230
|
-
|
2231
|
-
expect(rrule.between(start_time, end_time).take(3)).to match_array([
|
2232
|
-
Time.parse('Tue Sep 12 06:00:00 PDT 1997'),
|
2233
|
-
Time.parse('Fri Sep 22 06:00:00 PDT 1997'),
|
2234
|
-
Time.parse('Mon Oct 02 06:00:00 PDT 1997'),
|
2235
|
-
])
|
2236
|
-
end
|
2237
|
-
end
|
2238
|
-
end
|
2239
|
-
end
|
2240
|
-
|
2241
|
-
it 'returns the correct result with an rrule of FREQ=WEEKLY;BYMONTH=1,3;COUNT=4;BYHOUR=2' do
|
2242
|
-
rrule = 'FREQ=WEEKLY;BYMONTH=1,3;COUNT=4;BYHOUR=2'
|
2243
|
-
dtstart = Time.parse('Tue Sep 2 09:00:00 PDT 1997')
|
2244
|
-
timezone = 'America/Los_Angeles'
|
2245
|
-
|
2246
|
-
rrule = RRule::Rule.new(rrule, dtstart: dtstart, tzid: timezone)
|
2247
|
-
|
2248
|
-
expect(rrule.all).to match_array([
|
2249
|
-
Time.parse('Tue Jan 6 02:00:00 PST 1998'),
|
2250
|
-
Time.parse('Tue Jan 13 02:00:00 PST 1998'),
|
2251
|
-
Time.parse('Tue Jan 20 02:00:00 PST 1998'),
|
2252
|
-
Time.parse('Tue Jan 27 02:00:00 PST 1998')
|
2253
|
-
])
|
2254
|
-
end
|
2255
|
-
|
2256
|
-
it 'returns the correct result with an rrule of FREQ=WEEKLY;BYMONTH=1,3;COUNT=4;BYHOUR=2;BYMINUTE=44' do
|
2257
|
-
rrule = 'FREQ=WEEKLY;BYMONTH=1,3;COUNT=4;BYHOUR=2;BYMINUTE=44'
|
2258
|
-
dtstart = Time.parse('Tue Sep 2 09:00:00 PDT 1997')
|
2259
|
-
timezone = 'America/Los_Angeles'
|
2260
|
-
|
2261
|
-
rrule = RRule::Rule.new(rrule, dtstart: dtstart, tzid: timezone)
|
2262
|
-
expect(rrule.all).to match_array([
|
2263
|
-
Time.parse('Tue Jan 6 02:44:00 PST 1998'),
|
2264
|
-
Time.parse('Tue Jan 13 02:44:00 PST 1998'),
|
2265
|
-
Time.parse('Tue Jan 20 02:44:00 PST 1998'),
|
2266
|
-
Time.parse('Tue Jan 27 02:44:00 PST 1998')
|
2267
|
-
])
|
2268
|
-
end
|
2269
|
-
|
2270
|
-
it 'returns the correct result with an rrule of FREQ=WEEKLY;BYMONTH=1,3;COUNT=24;BYHOUR=2,4,6;BYMINUTE=33,22' do
|
2271
|
-
rrule = 'FREQ=WEEKLY;BYMONTH=1,3;COUNT=24;BYHOUR=2,4,6;BYMINUTE=33,22'
|
2272
|
-
dtstart = Time.parse('Tue Sep 2 09:23:42 PDT 1997')
|
2273
|
-
timezone = 'America/Los_Angeles'
|
2274
|
-
|
2275
|
-
rrule = RRule::Rule.new(rrule, dtstart: dtstart, tzid: timezone)
|
2276
|
-
expect(rrule.all).to match_array([
|
2277
|
-
Time.parse('Tue Jan 6 02:22:42 PST 1998'),
|
2278
|
-
Time.parse('Tue Jan 6 02:33:42 PST 1998'),
|
2279
|
-
Time.parse('Tue Jan 6 04:22:42 PST 1998'),
|
2280
|
-
Time.parse('Tue Jan 6 04:33:42 PST 1998'),
|
2281
|
-
Time.parse('Tue Jan 6 06:22:42 PST 1998'),
|
2282
|
-
Time.parse('Tue Jan 6 06:33:42 PST 1998'),
|
2283
|
-
Time.parse('Tue Jan 13 02:22:42 PST 1998'),
|
2284
|
-
Time.parse('Tue Jan 13 02:33:42 PST 1998'),
|
2285
|
-
Time.parse('Tue Jan 13 04:22:42 PST 1998'),
|
2286
|
-
Time.parse('Tue Jan 13 04:33:42 PST 1998'),
|
2287
|
-
Time.parse('Tue Jan 13 06:22:42 PST 1998'),
|
2288
|
-
Time.parse('Tue Jan 13 06:33:42 PST 1998'),
|
2289
|
-
Time.parse('Tue Jan 20 02:22:42 PST 1998'),
|
2290
|
-
Time.parse('Tue Jan 20 02:33:42 PST 1998'),
|
2291
|
-
Time.parse('Tue Jan 20 04:22:42 PST 1998'),
|
2292
|
-
Time.parse('Tue Jan 20 04:33:42 PST 1998'),
|
2293
|
-
Time.parse('Tue Jan 20 06:22:42 PST 1998'),
|
2294
|
-
Time.parse('Tue Jan 20 06:33:42 PST 1998'),
|
2295
|
-
Time.parse('Tue Jan 27 02:22:42 PST 1998'),
|
2296
|
-
Time.parse('Tue Jan 27 02:33:42 PST 1998'),
|
2297
|
-
Time.parse('Tue Jan 27 04:22:42 PST 1998'),
|
2298
|
-
Time.parse('Tue Jan 27 04:33:42 PST 1998'),
|
2299
|
-
Time.parse('Tue Jan 27 06:22:42 PST 1998'),
|
2300
|
-
Time.parse('Tue Jan 27 06:33:42 PST 1998')
|
2301
|
-
])
|
2302
|
-
end
|
2303
|
-
|
2304
|
-
describe 'validation' do
|
2305
|
-
it 'raises RRule::InvalidRRule if FREQ is not provided' do
|
2306
|
-
expect { RRule::Rule.new('') }.to raise_error(RRule::InvalidRRule)
|
2307
|
-
expect { RRule::Rule.new('FREQ=') }.to raise_error(RRule::InvalidRRule)
|
2308
|
-
expect { RRule::Rule.new('FREQ=FOO') }.to raise_error(RRule::InvalidRRule)
|
2309
|
-
expect { RRule::Rule.new('COUNT=1') }.to raise_error(RRule::InvalidRRule)
|
2310
|
-
expect { RRule::Rule.new('FREQ=FOO;COUNT=1') }.to raise_error(RRule::InvalidRRule)
|
2311
|
-
end
|
2312
|
-
|
2313
|
-
it 'raises RRule::InvalidRRule if INTERVAL is not a positive integer' do
|
2314
|
-
dtstart = Time.parse('Tue Sep 2 06:00:00 PDT 1997')
|
2315
|
-
timezone = 'America/New_York'
|
2316
|
-
|
2317
|
-
expect { RRule::Rule.new('FREQ=DAILY;INTERVAL=0', dtstart: dtstart, tzid: timezone) }.to raise_error(RRule::InvalidRRule)
|
2318
|
-
expect { RRule::Rule.new('FREQ=DAILY;INTERVAL=-1', dtstart: dtstart, tzid: timezone) }.to raise_error(RRule::InvalidRRule)
|
2319
|
-
expect { RRule::Rule.new('FREQ=DAILY;INTERVAL=1.1', dtstart: dtstart, tzid: timezone) }.to raise_error(RRule::InvalidRRule)
|
2320
|
-
expect { RRule::Rule.new('FREQ=DAILY;INTERVAL=BOOM', dtstart: dtstart, tzid: timezone) }.to raise_error(RRule::InvalidRRule)
|
2321
|
-
end
|
2322
|
-
|
2323
|
-
it 'raises RRule::InvalidRRule if COUNT is not an integer' do
|
2324
|
-
dtstart = Time.parse('Tue Sep 2 06:00:00 PDT 1997')
|
2325
|
-
timezone = 'America/New_York'
|
2326
|
-
|
2327
|
-
expect { RRule::Rule.new('FREQ=DAILY;COUNT=BOOM', dtstart: dtstart, tzid: timezone) }.to raise_error(RRule::InvalidRRule)
|
2328
|
-
expect { RRule::Rule.new('FREQ=DAILY;COUNT=1.5', dtstart: dtstart, tzid: timezone) }.to raise_error(RRule::InvalidRRule)
|
2329
|
-
end
|
2330
|
-
|
2331
|
-
it 'raises RRule::InvalidRRule if COUNT is negative' do
|
2332
|
-
dtstart = Time.parse('Tue Sep 2 06:00:00 PDT 1997')
|
2333
|
-
timezone = 'America/New_York'
|
2334
|
-
|
2335
|
-
expect { RRule::Rule.new('FREQ=DAILY;COUNT=-1', dtstart: dtstart, tzid: timezone) }.to raise_error(RRule::InvalidRRule)
|
2336
|
-
end
|
2337
|
-
end
|
2338
|
-
end
|