Bye Bye Moore

猫マンション建築の野望を胸に零細事業主として資本主義の荒波に漕ぎ出したアラサー男の技術メモ

compact 配列からnilを消す

compactはnilを消した配列を返してくれる関数です。

userName = ["foo", "bar", "foobar", nil]

p userName.compact

=> ["foo", "bar", "foobar"]

これを使うと、ファイル名を作製したい場合に少しだけ幸せになれます。

userName = ["foo", "bar", "foobar", nil]

num = 0
for i in userName do
  puts [i,"#{Time.now.strftime("%y%m%d%H%M%S")}", "#{num}"].join("_") + ".jpg"
  num += 1
end
=> foo_120905130823_0.jpg
=> bar_120905130823_1.jpg
=> foobar_120905130823_2.jpg
=> _120905130823_3.jpg

num = 0
  for i in userName do
  puts [i,"#{Time.now.strftime("%y%m%d%H%M%S")}", "#{num}"].compact.join("_") + ".jpg"
  num += 1
end
=> foo_120905130823_0.jpg
=> bar_120905130823_1.jpg
=> foobar_120905130823_2.jpg
=> 120905130823_3.jpg

このように、nilが格納された場合無視してくれるので、頭にかっこ悪い"_"が入りません。