From e7df4bb0673b3ec07bce9e91aa29fb8213e7e6c5 Mon Sep 17 00:00:00 2001 From: Dzmitry Plashchynski Date: Thu, 22 Sep 2016 18:24:46 +0300 Subject: [PATCH] Fix crash when no jobs defined --- lib/crono/cli.rb | 15 +++++++++------ spec/cli_spec.rb | 6 ++++-- 2 files changed, 13 insertions(+), 8 deletions(-) diff --git a/lib/crono/cli.rb b/lib/crono/cli.rb index a06a18e..c4835b5 100644 --- a/lib/crono/cli.rb +++ b/lib/crono/cli.rb @@ -29,7 +29,11 @@ module Crono Cronotab.process(File.expand_path(config.cronotab)) print_banner - check_jobs + unless have_jobs? + logger.error "You have no jobs in you cronotab file #{config.cronotab}" + return + end + if config.daemonize start_working_loop_in_daemon else @@ -39,6 +43,10 @@ module Crono private + def have_jobs? + Crono.scheduler.jobs.present? + end + def setup_log if config.daemonize self.logfile = config.logfile @@ -85,11 +93,6 @@ module Crono ::Rails.application.eager_load! end - def check_jobs - return if Crono.scheduler.jobs.present? - logger.error "You have no jobs in you cronotab file #{config.cronotab}" - end - def start_working_loop_in_daemon unless ENV['RAILS_ENV'] == 'test' begin diff --git a/spec/cli_spec.rb b/spec/cli_spec.rb index b80a621..7ce0d29 100644 --- a/spec/cli_spec.rb +++ b/spec/cli_spec.rb @@ -7,6 +7,7 @@ describe Crono::CLI do describe '#run' do it 'should initialize rails with #load_rails and start working loop' do expect(cli).to receive(:load_rails) + expect(cli).to receive(:have_jobs?).and_return(true) expect(cli).to receive(:start_working_loop) expect(cli).to receive(:parse_options) expect(cli).to receive(:parse_command) @@ -14,12 +15,13 @@ describe Crono::CLI do expect(Crono::Cronotab).to receive(:process) cli.run end - context 'should run as daemon' do - before {cli.config.daemonize = true} + context 'should run as daemon' do + before { cli.config.daemonize = true } it 'should initialize rails with #load_rails and start working loop' do expect(cli).to receive(:load_rails) + expect(cli).to receive(:have_jobs?).and_return(true) expect(cli).to receive(:start_working_loop_in_daemon) expect(cli).to receive(:parse_options) expect(cli).to receive(:parse_command)