module Fugit::Nat
def parse_interval_elt(e, opts, h)
def parse_interval_elt(e, opts, h) e1 = e[1] case e[2] when 's', 'sec', 'second', 'seconds' h[:sec] = eone(e) when 'm', 'min', 'mins', 'minute', 'minutes' h[:hms] ||= [ [ '*', eone(e) ] ] when 'h', 'hour', 'hours' hms = h[:hms] if hms && hms.size == 1 && hms.first.first == '*' hms.first[0] = eone(e) elsif ! hms h[:hms] = [ [ eone(e), 0 ] ] end when 'd', 'day', 'days' h[:dom] = "*/#{e1}" if e1 > 1 h[:hms] ||= [ [ 0, 0 ] ] when 'w', 'week', 'weeks' h[:_fail] = "cannot have crons for \"every #{e1} weeks\"" if e1 > 1 h[:hms] ||= [ [ 0, 0 ] ] h[:dow] ||= 0 when 'M', 'month', 'months' h[:_fail] = "cannot have crons for \"every #{e1} months\"" if e1 > 12 h[:hms] ||= [ [ 0, 0 ] ] h[:dom] = 1 h[:mon] = eone(e) when 'Y', 'y', 'year', 'years' h[:_fail] = "cannot have crons for \"every #{e1} years\"" if e1 > 1 h[:hms] ||= [ [ 0, 0 ] ] h[:dom] = 1 h[:mon] = 1 end end