Class: JobBoard::CronDescription
- Inherits:
-
Object
- Object
- JobBoard::CronDescription
- Defined in:
- app/models/job_board/cron_description.rb
Overview
Turns a cron expression into an English frequency description, e.g. "30 9 * * 1-5" => "At 09:30 on Monday through Friday". Returns nil for anything it can't describe faithfully.
Constant Summary collapse
- DAYS =
%w[Sunday Monday Tuesday Wednesday Thursday Friday Saturday].freeze
- MONTHS =
%w[January February March April May June July August September October November December].freeze
Class Method Summary collapse
Instance Method Summary collapse
-
#initialize(cron) ⇒ CronDescription
constructor
A new instance of CronDescription.
- #to_s ⇒ Object
Constructor Details
#initialize(cron) ⇒ CronDescription
Returns a new instance of CronDescription.
19 20 21 |
# File 'app/models/job_board/cron_description.rb', line 19 def initialize(cron) @cron = cron end |
Class Method Details
.describe(schedule) ⇒ Object
12 13 14 15 16 17 |
# File 'app/models/job_board/cron_description.rb', line 12 def self.describe(schedule) cron = Fugit.parse(schedule.to_s) new(cron).to_s if cron.instance_of?(Fugit::Cron) rescue StandardError nil end |
Instance Method Details
#to_s ⇒ Object
23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 |
# File 'app/models/job_board/cron_description.rb', line 23 def to_s time = time_clause return nil if time.nil? days = day_clause description = if days "#{time} #{days}" elsif time.start_with?("At ") "Every day #{time.sub(/\AAt /, "at ")}" else time end cron.zone ? "#{description} (#{cron.zone})" : description end |