ファイルを保存する時に既に同じ名前のファイルがあった時は連番を付けたくなったので書いたコード
例えば
piyopiyo.jpgというファイルを作ろうとした時に既に同じ名前のファイルがあれば、piyopiyo(1).jpg、
piyopityo(1).jpgというファイルも既にあれば、piyopiyo(2).jpg
というように以下piyopiyo(i).jpgで被っている限りiを増やしていきます。
def avoid_conflict_name name
i = (i || i = 0).succ while File.exist?(ret = "#{name}#{i ? "(#{i})" : ""}.jpg")
ret
end
ちょっと黒い所が見えちゃってるけど気にしない♡ ※黒魔術は用法用量を守って正しく使いましょう。
i = (i || i = 0).succ
とか
初回のループでの
"#{name}#{i ? "(#{i})" : ""}.jpg"
のiとか
代入されていないのに使える変数の仕様は IQ1450で美少女JSの先輩から、Rubyで無から有を生み出す方法を教わった を見てね♡