class Rufus::Scheduler::CronLine

def parse_range(item, min, max)

def parse_range(item, min, max)
  return %w[ L ] if item == 'L'
  item = '*' + item if item.match(/^\//)
  m = item.match(RANGE_REGEX)
  raise ArgumentError.new(
    "cannot parse #{item.inspect}"
  ) unless m
  sta = m[1]
  sta = sta == '*' ? min : sta.to_i
  edn = m[2]
  edn = edn ? edn.to_i : sta
  edn = max if m[1] == '*'
  inc = m[3]
  inc = inc ? inc.to_i : 1
  raise ArgumentError.new(
    "#{item.inspect} is not in range #{min}..#{max}"
  ) if sta < min || edn > max
  r = []
  val = sta
  loop do
    v = val
    v = 0 if max == 24 && v == 24
    r << v
    break if inc == 1 && val == edn
    val += inc
    break if inc > 1 && val > edn
    val = min if val > max
  end
  r.uniq
end