module Fugit
def do_parse(s, opts={})
def do_parse(s, opts={}) opts[:at] = opts[:in] if opts.has_key?(:in) result = nil errors = [] %i[ cron duration nat at ] .each { |k| begin result ||= (opts[k] != false && self.send("do_parse_#{k}", s)) rescue => err errors << err end } return result if result raise( errors.find { |r| r.class != ArgumentError } || errors.first || ArgumentError.new("found no time information in #{s.inspect}")) end