class Infobar::Spinner

def initialize(frames = nil)

def initialize(frames = nil)
  @frames =
    case frames
    when Array
      frames
    when Symbol
      PREDEFINED.fetch(frames) do
        |k| raise KeyError, "frames #{k} not predefined"
      end
    when nil
      PREDEFINED[:pipe]
    end
end

def spin(count)

def spin(count)
  @string =
    if count == :random
      @frames[rand(@frames.size)]
    else
      @frames[count % @frames.size]
    end
  self
end

def to_s

def to_s
  @string
end