Skip to content

Commit 620b329

Browse files
authored
Support development for different Rails/Ruby versions
2 parents ba34f0d + 43c4c41 commit 620b329

File tree

8 files changed

+45
-22
lines changed

8 files changed

+45
-22
lines changed

.travis.yml

Lines changed: 18 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,12 +4,28 @@ before_install:
44
notifications:
55
email:
66
7+
78
branches:
89
only:
910
- master
10-
- v0.7
1111
rvm:
1212
- 1.9.3
13-
- 2.0.0
13+
- 2.0
1414
- 2.1
1515
- 2.2
16+
- 2.3
17+
- ruby-head
18+
env:
19+
- RAILS_VERSION='~> 3.2'
20+
- RAILS_VERSION='~> 4.2'
21+
- RAILS_VERSION='~> 5.0'
22+
matrix:
23+
exclude:
24+
- rvm: 1.9.3
25+
env: RAILS_VERSION='~> 5.0'
26+
- rvm: 2.0
27+
env: RAILS_VERSION='~> 5.0'
28+
- rvm: 2.1
29+
env: RAILS_VERSION='~> 5.0'
30+
- rvm: 2.2
31+
env: RAILS_VERSION='~> 5.0'

Gemfile

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,11 @@
11
source 'https://rubygems.org'
2+
gemspec
23

3-
gemspec
4+
compatible_rails_versions = [
5+
'>= 3.0.0',
6+
('<5' if Gem::Version.new(RUBY_VERSION) < Gem::Version.new('2.2.2'))
7+
].compact
8+
9+
gem 'activesupport', (ENV['RAILS_VERSION'] || compatible_rails_versions), require: false
10+
gem 'i18n', require: false
11+
gem 'tzinfo', require: false # only needed explicitly for RAILS_VERSION=3

ice_cube.gemspec

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,4 @@ Gem::Specification.new do |s|
1919

2020
s.add_development_dependency('rake')
2121
s.add_development_dependency('rspec', '~> 2.12.0')
22-
s.add_development_dependency('activesupport', ['>= 3.0.0', ('<5' if Gem::Version.new(RUBY_VERSION) < Gem::Version.new('2.2.2'))].compact)
23-
s.add_development_dependency('tzinfo')
24-
s.add_development_dependency('i18n')
2522
end

spec/examples/active_support_spec.rb

Lines changed: 9 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,7 @@
11
require File.dirname(__FILE__) + '/../spec_helper'
22
require 'active_support/time'
3+
require 'active_support/version'
4+
require 'tzinfo' if ActiveSupport::VERSION::MAJOR == 3
35

46

57
module IceCube
@@ -64,7 +66,7 @@ module IceCube
6466
end
6567

6668
it 'should use the correct zone for next_occurrences before start_time' do
67-
future_time = Time.zone.now.beginning_of_day + 1.day
69+
future_time = Time.zone.now.beginning_of_day + IceCube::ONE_DAY
6870
schedule = Schedule.new(future_time)
6971
schedule.add_recurrence_rule Rule.daily
7072
schedule.next_occurrence.time_zone.should == schedule.start_time.time_zone
@@ -103,23 +105,23 @@ module IceCube
103105
end
104106

105107
it 'uses schedule zone for remaining_occurrences' do
106-
remaining_occurrences = schedule.remaining_occurrences(reference_time + 1.day)
108+
remaining_occurrences = schedule.remaining_occurrences(reference_time + IceCube::ONE_DAY)
107109
remaining_occurrences.should == [Time.utc(2013, 1, 2), Time.utc(2013, 1, 3)]
108110
remaining_occurrences.each do |t|
109111
t.time_zone.should == schedule.start_time.time_zone
110112
end
111113
end
112114

113115
it 'uses schedule zone for occurrences' do
114-
occurrences = schedule.occurrences(reference_time + 1.day)
116+
occurrences = schedule.occurrences(reference_time + IceCube::ONE_DAY)
115117
occurrences.should == [Time.utc(2013, 1, 1), Time.utc(2013, 1, 2)]
116118
occurrences.each do |t|
117119
t.time_zone.should == schedule.start_time.time_zone
118120
end
119121
end
120122

121123
it 'uses schedule zone for occurrences_between' do
122-
occurrences_between = schedule.occurrences_between(reference_time, reference_time + 1.day)
124+
occurrences_between = schedule.occurrences_between(reference_time, reference_time + IceCube::ONE_DAY)
123125
occurrences_between.should == [Time.utc(2013, 1, 1), Time.utc(2013, 1, 2)]
124126
occurrences_between.each do |t|
125127
t.time_zone.should == schedule.start_time.time_zone
@@ -129,7 +131,7 @@ module IceCube
129131
it "uses schedule zone for occurrences_between with a rule terminated by #count" do
130132
utc = Time.utc(2013, 1, 1).in_time_zone('UTC')
131133
s = Schedule.new(utc) { |s| s.add_recurrence_rule Rule.daily.count(3) }
132-
occurrences_between = s.occurrences_between(reference_time, reference_time + 1.day)
134+
occurrences_between = s.occurrences_between(reference_time, reference_time + IceCube::ONE_DAY)
133135
occurrences_between.should == [Time.utc(2013, 1, 1), Time.utc(2013, 1, 2)]
134136
occurrences_between.each do |t|
135137
t.time_zone.should == schedule.start_time.time_zone
@@ -139,7 +141,7 @@ module IceCube
139141
it "uses schedule zone for occurrences_between with a rule terminated by #until" do
140142
utc = Time.utc(2013, 1, 1).in_time_zone('UTC')
141143
s = Schedule.new(utc) { |s| s.add_recurrence_rule Rule.daily.until(utc.advance(:days => 3)) }
142-
occurrences_between = s.occurrences_between(reference_time, reference_time + 1.day)
144+
occurrences_between = s.occurrences_between(reference_time, reference_time + IceCube::ONE_DAY)
143145
occurrences_between.should == [Time.utc(2013, 1, 1), Time.utc(2013, 1, 2)]
144146
occurrences_between.each do |t|
145147
t.time_zone.should == schedule.start_time.time_zone
@@ -149,7 +151,7 @@ module IceCube
149151
it "uses schedule zone for occurrences_between with an unterminated rule" do
150152
utc = Time.utc(2013, 1, 1).in_time_zone('UTC')
151153
s = Schedule.new(utc) { |s| s.add_recurrence_rule Rule.daily }
152-
occurrences_between = s.occurrences_between(reference_time, reference_time + 1.day)
154+
occurrences_between = s.occurrences_between(reference_time, reference_time + IceCube::ONE_DAY)
153155
occurrences_between.should == [Time.utc(2013, 1, 1), Time.utc(2013, 1, 2)]
154156
occurrences_between.each do |t|
155157
t.time_zone.should == schedule.start_time.time_zone

spec/examples/from_ical_spec.rb

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -89,7 +89,7 @@ module IceCube
8989
it 'should return no occurrences after daily interval with count is over' do
9090
schedule = IceCube::Schedule.new(Time.now)
9191
schedule.add_recurrence_rule(IceCube::Rule.from_ical("FREQ=DAILY;COUNT=5"))
92-
schedule.occurrences_between(Time.now + 7.days, Time.now + 14.days).count.should == 0
92+
schedule.occurrences_between(Time.now + (IceCube::ONE_DAY * 7), Time.now + (IceCube::ONE_DAY * 14)).count.should == 0
9393
end
9494

9595
end
@@ -177,7 +177,7 @@ def sorted_ical(ical)
177177
start_time = Time.now
178178

179179
schedule = IceCube::Schedule.new(start_time)
180-
schedule.add_recurrence_rule(IceCube::Rule.daily.until(start_time + 15.days))
180+
schedule.add_recurrence_rule(IceCube::Rule.daily.until(start_time + (IceCube::ONE_DAY * 15)))
181181

182182
ical = schedule.to_ical
183183
sorted_ical(IceCube::Schedule.from_ical(ical).to_ical).should eq(sorted_ical(ical))
@@ -357,7 +357,7 @@ def sorted_ical(ical)
357357

358358
schedule = IceCube::Schedule.new(start_time)
359359
schedule.add_recurrence_rule(IceCube::Rule.daily)
360-
schedule.add_exception_time(Time.now + 2.days)
360+
schedule.add_exception_time(Time.now + (IceCube::ONE_DAY * 2))
361361

362362
ical = schedule.to_ical
363363
sorted_ical(IceCube::Schedule.from_ical(ical).to_ical).should eq(sorted_ical(ical))

spec/examples/ice_cube_spec.rb

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -334,14 +334,14 @@
334334
describe "using occurs_between with a biweekly schedule" do
335335
[[0, 1, 2], [0, 6, 1], [5, 1, 6], [6, 5, 7]].each do |wday, offset, lead|
336336
start_week = Time.utc(2014, 1, 5)
337-
expected_week = start_week + 2.weeks
337+
expected_week = start_week + (IceCube::ONE_DAY * 14)
338338
offset_wday = (wday + offset) % 7
339339

340340
context "starting on weekday #{wday} selecting weekday #{offset} with a #{lead} day advance window" do
341341
let(:biweekly) { Rule.weekly(2).day(0, 1, 2, 3, 4, 5, 6) }
342-
let(:schedule) { Schedule.new(start_week + wday.days) { |s| s.rrule biweekly } }
343-
let(:expected_date) { expected_week + offset_wday.days }
344-
let(:range) { [expected_date - lead.days, expected_date] }
342+
let(:schedule) { Schedule.new(start_week + (IceCube::ONE_DAY * wday)) { |s| s.rrule biweekly } }
343+
let(:expected_date) { expected_week + (IceCube::ONE_DAY * offset_wday) }
344+
let(:range) { [expected_date - (IceCube::ONE_DAY * lead), expected_date] }
345345

346346
it "should include weekday #{offset_wday} of the expected week" do
347347
expect(schedule.occurrences_between(range.first, range.last)).to include expected_date

spec/examples/monthly_rule_spec.rb

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,7 @@ module IceCube
3636
schedule = double(start_time: t0 = Time.utc(2013, 5, 17))
3737
rule = Rule.monthly(3)
3838
rule.interval(1)
39-
rule.next_time(t0 + 1, schedule, nil).should == t0 + 31.days
39+
rule.next_time(t0 + 1, schedule, nil).should == t0 + (IceCube::ONE_DAY * 31)
4040
end
4141

4242
it 'should produce the correct number of days for @interval = 1' do

spec/examples/yearly_rule_spec.rb

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@
3131
schedule = double(start_time: t0 = Time.utc(2013, 5, 1))
3232
rule = Rule.yearly(3)
3333
rule.interval(1)
34-
rule.next_time(t0 + 1, schedule, nil).should == t0 + 365.days
34+
rule.next_time(t0 + 1, schedule, nil).should == t0 + (IceCube::ONE_DAY * 365)
3535
end
3636

3737
it 'should be able to specify complex yearly rules' do

0 commit comments

Comments
 (0)