Skip to content

Commit 5093a3e

Browse files
committed
Add test for using fixnum for every
Check for empty should be done on string Format numeric every for server Fix Rubocop complaint in test
1 parent d7bd3c5 commit 5093a3e

File tree

4 files changed

+17
-3
lines changed

4 files changed

+17
-3
lines changed

CHANGELOG.md

+1
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55
## [Unreleased]
66
### Changed
77
- Remove support for Ruby < 2.3
8+
- Allow use of duration (e.g. `30.minutes`) for interval type scheduling
89

910
## [4.5.0] - 2021-09-25
1011
### Added

lib/resque/scheduler.rb

+1-1
Original file line numberDiff line numberDiff line change
@@ -144,7 +144,7 @@ def load_schedule_job(name, config)
144144
interval_defined = false
145145
interval_types = %w(cron every)
146146
interval_types.each do |interval_type|
147-
next unless !config[interval_type].nil? && !config[interval_type].empty?
147+
next unless !config[interval_type].nil? && !config[interval_type].to_s.empty?
148148
args = optionizate_interval_value(config[interval_type])
149149
args = [args, nil, job: true] if args.is_a?(::String)
150150

lib/resque/scheduler/server.rb

+2-2
Original file line numberDiff line numberDiff line change
@@ -185,13 +185,13 @@ def schedule_interval(config)
185185

186186
def schedule_interval_every(every)
187187
every = [*every]
188-
s = 'every: ' << every.first
188+
s = 'every: ' << "#{every.first}#{'s' if every.first.is_a?(Numeric)}"
189189

190190
return s unless every.length > 1
191191

192192
s << ' ('
193193
meta = every.last.map do |key, value|
194-
"#{key.to_s.tr('_', ' ')} #{value}"
194+
"#{key.to_s.tr('_', ' ')} #{value}#{'s' if value.is_a?(Numeric)}"
195195
end
196196
s << meta.join(', ') << ')'
197197
end

test/scheduler_test.rb

+13
Original file line numberDiff line numberDiff line change
@@ -132,6 +132,19 @@
132132
assert job.opts.keys.include?(:first_in)
133133
end
134134

135+
test 'load_schedule_job with every fixnum' do
136+
Resque::Scheduler.load_schedule_job(
137+
'some_ivar_job',
138+
'every' => 30,
139+
'class' => 'SomeIvarJob',
140+
'args' => '/tmp'
141+
)
142+
143+
assert_equal(1, Resque::Scheduler.rufus_scheduler.jobs.size)
144+
assert_equal(1, Resque::Scheduler.scheduled_jobs.size)
145+
assert Resque::Scheduler.scheduled_jobs.keys.include?('some_ivar_job')
146+
end
147+
135148
test 'load_schedule_job with cron with options' do
136149
Resque::Scheduler.load_schedule_job(
137150
'some_ivar_job',

0 commit comments

Comments
 (0)