class Rufus::Scheduler::CronLine

def parse_weekdays(item)

def parse_weekdays(item)
  return nil if item == '*'
  items = item.downcase.split(',')
  weekdays = nil
  monthdays = nil
  items.each do |it|
    if m = it.match(/^(.+)#(l|-?[12345])$/)
      raise ArgumentError.new(
        "ranges are not supported for monthdays (#{it})"
      ) if m[1].index('-')
      expr = it.gsub(/#l/, '#-1')
      (monthdays ||= []) << expr
    else
      expr = it.dup
      WEEKDAYS.each_with_index { |a, i| expr.gsub!(/#{a}/, i.to_s) }
      raise ArgumentError.new(
        "invalid weekday expression (#{it})"
      ) if expr !~ /^0*[0-7](-0*[0-7])?$/
      its = expr.index('-') ? parse_range(expr, 0, 7) : [ Integer(expr) ]
      its = its.collect { |i| i == 7 ? 0 : i }
      (weekdays ||= []).concat(its)
    end
  end
  weekdays = weekdays.uniq.sort if weekdays
  [ weekdays, monthdays ]
end