Пару руби-мелочей
December 8, 2014

Накопилось пару мелочей, о которых хочу сегодня написать.
Array#to_h
Ровно сто тысяч раз я писал примерно так:
ages = Hash[ users.map { |user|
[user.name, user.age]
}]
Боги увидели мои страдания и послали человека с именем
Marc-André Lafortune, который добавил в транк метод #to_h
около года назад.
Изменения появились в руби 2.1, я все время забываю, что этим уже можно и нужно пользоваться:
ages = users.map { |user|
[user.name, user.age]
}.to_h
Интерполяция без {}
Где-то в исходниках я увидел как выводять пид процесса
puts "PID: #$$"
"Что же это такое?" - подумал я. Я знаю только только вариант puts "PID: #{$$}"
. Оказываетcя в руби
глобальные переменные можно интерполировать без кавычек:
$name = "Alexey"
puts "I'm #{$name}" # => I'm Alexey
puts "I'm #$name" # => I'm Alexey