Пару руби-мелочей

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

:fire: :fire:

comments powered by Disqus