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