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