Class: SimpleScheduler::At
- Inherits:
-
Time
- Object
- Time
- SimpleScheduler::At
- Defined in:
- lib/simple_scheduler/at.rb
Overview
A Time class for parsing the :at option on a task into the first time it should run.
Time.now
# => 2016-12-09 08:24:11 -0600
SimpleScheduler::At.new("*:30")
# => 2016-12-09 08:30:00 -0600
SimpleScheduler::At.new("1:00")
# => 2016-12-10 01:00:00 -0600
SimpleScheduler::At.new("Sun 0:00")
# => 2016-12-11 00:00:00 -0600
Defined Under Namespace
Classes: InvalidTime
Constant Summary collapse
- AT_PATTERN =
/\A(Sun|Mon|Tue|Wed|Thu|Fri|Sat)?\s?(?:\*{1,2}|((?:\b[0-1]?[0-9]|2[0-3]))):([0-5]\d)\z/.freeze
- DAYS =
%w[Sun Mon Tue Wed Thu Fri Sat].freeze
Instance Method Summary collapse
-
#hour ⇒ Integer
Always returns the specified hour if the hour was given, otherwise it returns the hour calculated based on other specified options.
-
#hour? ⇒ Boolean
Returns whether or not the hour was specified in the :at string.
-
#initialize(at, time_zone = nil) ⇒ At
constructor
Accepts a time string to determine when a task should be run for the first time.
Constructor Details
#initialize(at, time_zone = nil) ⇒ At
Accepts a time string to determine when a task should be run for the first time. Valid formats:
"18:00"
"3:30"
"**:00"
"*:30"
"Sun 2:00"
"[Sun|Mon|Tue|Wed|Thu|Fri|Sat] 00:00"
rubocop:disable Metrics/AbcSize
29 30 31 32 33 34 |
# File 'lib/simple_scheduler/at.rb', line 29 def initialize(at, time_zone = nil) @at = at @time_zone = time_zone || Time.zone super(parsed_time.year, parsed_time.month, parsed_time.day, parsed_time.hour, parsed_time.min, parsed_time.sec, parsed_time.utc_offset) end |
Instance Method Details
#hour ⇒ Integer
Always returns the specified hour if the hour was given, otherwise it returns the hour calculated based on other specified options.
40 41 42 |
# File 'lib/simple_scheduler/at.rb', line 40 def hour hour? ? at_hour : super end |
#hour? ⇒ Boolean
Returns whether or not the hour was specified in the :at string.
46 47 48 |
# File 'lib/simple_scheduler/at.rb', line 46 def hour? at_match[2].present? end |