#!/usr/bin/ruby
require 'optparse'

FACES = ['ﾟ∀ﾟ', ' ﾟ∀', ' 　ﾟ', '　　', '　　', 'ﾟ 　', '∀ﾟ ', 'ﾟ∀ﾟ']
@delay = 0.05
@rotate = 1
opt = nil
ARGV.options do |opt|
  opt.def_option("-d", "--delay=second", Float) {|@delay|}
  opt.def_option("-r", "--rotate=num", Integer) {|@rotate|}
  opt.def_option("-f", "--forever") {@rotate = nil}
  opt.parse!
end or abort(opt.to_s)
message = ARGV.join(' ')
STDOUT.sync = true
kita = proc do
  FACES.each do |face|
    print "\r#{message}ｷﾀ━━━(#{face})━━━!!!!!"
    sleep @delay
  end
end
begin
  if @rotate
    @rotate.times(&kita)
  else
    loop(&kita)
  end
rescue Interrupt
end
puts
