class When::Cron::Validator
Constants
- MONTHS
- NOT_BASIC_CHARS
- NOT_BASIC_OR_LETTERS
- WDAYS
Attributes
cron[R]
Public Class Methods
new(cron)
click to toggle source
# File lib/when-cron/cron/validator.rb, line 44 def initialize(cron) @cron = cron end
valid?(cron)
click to toggle source
# File lib/when-cron/cron/validator.rb, line 32 def self.valid?(cron) v = new(cron) v.correct_number_of_parts? && v.min_correct? && v.hour_correct? && v.day_correct? && v.month_correct? && v.wday_correct? end
Public Instance Methods
correct_number_of_parts?()
click to toggle source
# File lib/when-cron/cron/validator.rb, line 72 def correct_number_of_parts? cron.split(' ').count == 5 end
day()
click to toggle source
# File lib/when-cron/cron/validator.rb, line 60 def day parts[2] end
day_correct?()
click to toggle source
# File lib/when-cron/cron/validator.rb, line 86 def day_correct? correct_range?(day, 1..31) && !(day =~ NOT_BASIC_CHARS) end
hour()
click to toggle source
# File lib/when-cron/cron/validator.rb, line 56 def hour parts[1] end
hour_correct?()
click to toggle source
# File lib/when-cron/cron/validator.rb, line 81 def hour_correct? correct_range?(hour, 0..23) && !(hour =~ NOT_BASIC_CHARS) end
min()
click to toggle source
# File lib/when-cron/cron/validator.rb, line 52 def min parts[0] end
min_correct?()
click to toggle source
# File lib/when-cron/cron/validator.rb, line 76 def min_correct? correct_range?(min, 0..59) && !(min =~ NOT_BASIC_CHARS) end
month()
click to toggle source
# File lib/when-cron/cron/validator.rb, line 64 def month parts[3] end
month_correct?()
click to toggle source
# File lib/when-cron/cron/validator.rb, line 91 def month_correct? correct_range?(month, 1..12) && month.scan(/[a-zA-Z]+/).all? { |w| MONTHS[w.upcase] } && !(month =~ NOT_BASIC_OR_LETTERS) end
parts()
click to toggle source
# File lib/when-cron/cron/validator.rb, line 48 def parts @parts ||= cron.split(' ') end
wday()
click to toggle source
# File lib/when-cron/cron/validator.rb, line 68 def wday parts[4] end
wday_correct?()
click to toggle source
# File lib/when-cron/cron/validator.rb, line 97 def wday_correct? correct_range?(wday, 0..6) && wday.scan(/[a-zA-Z]+/).all? { |w| WDAYS[w.upcase] } && !(wday =~ NOT_BASIC_OR_LETTERS) end
Private Instance Methods
correct_range?(part, range)
click to toggle source
# File lib/when-cron/cron/validator.rb, line 105 def correct_range?(part, range) part.scan(/\d+/).all? do |digits| range === digits.to_i end end