Практика IT-собеседований
Как Ruby позволяет создавать внутренние DSL? · Практика IT-собеседований