class Bizside::CronValidator

Constants

CRON_ATTR
MAX_DAY
MAX_HOUR
MAX_MINUTE
MAX_MONTH
MAX_WEEKDAY
MIN_DAY
MIN_HOUR
MIN_MINUTE
MIN_MONTH
MIN_WEEKDAY

Public Class Methods

new(cron) click to toggle source
# File lib/bizside/cron_validator.rb, line 15
def initialize(cron)
  @minute, @hour, @day, @month, @weekday = cron.split
end

Public Instance Methods

valid?() click to toggle source
# File lib/bizside/cron_validator.rb, line 19
def valid?
  valid_minute? &&
  valid_hour? &&
  valid_day? &&
  valid_month? &&
  valid_weekday?
end

Private Instance Methods

remove_to_ignore_value(value) click to toggle source
# File lib/bizside/cron_validator.rb, line 58
def remove_to_ignore_value(value)
  value.gsub(/(\/\d*|\*)/, "")
end
valid_format?(value) click to toggle source
# File lib/bizside/cron_validator.rb, line 40
def valid_format?(value)
  value =~ /\A(\*(\/\d+)?|\d+(,\d+)*(-\d+)*(\/\d+)*)\Z/
end
valid_range?(min, max, value) click to toggle source
# File lib/bizside/cron_validator.rb, line 44
def valid_range?(min, max, value)
  validate_values = remove_to_ignore_value(value).split(",")
  validate_values.reject do |v|
    if v.include?("-")
      range_v = v.split("-")
      (min..max).include?(range_v[0].to_i) &&
      (min..max).include?(range_v[1].to_i) &&
      range_v[0].to_i < range_v[1].to_i
    else
      (min..max).include? v.to_i
    end
  end.empty?
end