Это методы Ruby, которые автоматически генерируют методы-геттеры и/или сеттеры для переменных экземпляра — избавляя от шаблонного кода. Поскольку переменные экземпляра (@name) являются приватными и недоступны напрямую снаружи, вам нужны методы доступа для чтения/записи, а attr_* генерирует их лаконично.
Проблема, которую они решают
()
= name
()
= value
