class Chronic::RepeaterTime

def initialize(time)

def initialize(time)
  t = time.gsub(/\:/, '')
  @type =
  case t.size
    when 1..2
      hours = t.to_i
      hours == 12 ? Tick.new(0 * 60 * 60, true) : Tick.new(hours * 60 * 60, true)
    when 3
      hours = t[0..0].to_i
      ambiguous = hours > 0
      Tick.new((hours * 60 * 60) + (t[1..2].to_i * 60), ambiguous)
    when 4
      ambiguous = time =~ /:/ && t[0..0].to_i != 0 && t[0..1].to_i <= 12
      hours = t[0..1].to_i
      hours == 12 ? Tick.new(0 * 60 * 60 + t[2..3].to_i * 60, ambiguous) : Tick.new(hours * 60 * 60 + t[2..3].to_i * 60, ambiguous)
    when 5
      Tick.new(t[0..0].to_i * 60 * 60 + t[1..2].to_i * 60 + t[3..4].to_i, true)
    when 6
      ambiguous = time =~ /:/ && t[0..0].to_i != 0 && t[0..1].to_i <= 12
      hours = t[0..1].to_i
      hours == 12 ? Tick.new(0 * 60 * 60 + t[2..3].to_i * 60 + t[4..5].to_i, ambiguous) : Tick.new(hours * 60 * 60 + t[2..3].to_i * 60 + t[4..5].to_i, ambiguous)
    else
      raise("Time cannot exceed six digits")
  end
end