class Fugit::Duration

def parse(s, opts={})

def parse(s, opts={})
  return s if s.is_a?(self)
  original = s
  s = "#{s}s" if s.is_a?(Numeric)
  return nil unless s.is_a?(String)
  s = s.strip
riginal, s ]; Raabro.pp(Parser.parse(s, debug: 3), colours: true)
  h =
    if opts[:iso]
      IsoParser.parse(opts[:stricter] ? s : s.upcase)
    elsif opts[:plain]
      Parser.parse(s)
    else
      Parser.parse(s) || IsoParser.parse(opts[:stricter] ? s : s.upcase)
    end
  h ? self.allocate.send(:init, original, opts, h) : nil
end