Токены HereDocs как аргумент метода

Обзор того, как взаимодействовать с HereDocs в качестве аргумента

Прежде чем начать

Позвольте мне представить здесь платформу, которая помогла мне изучить большую часть моих знаний о Ruby. Действительно, Pluralsight - потрясающая платформа.

С 50+ курсами, которые охватывают различные темы по Ruby и Ruby on Rails, это лучший способ поднять свои знания на новый уровень!

Попробуйте бесплатно 👇😉



Pluralsight | Бесплатная личная пробная версия
Подробнее о бесплатных пробных версиях Pluralsight. pluralsight.pxf.io



Спасибо за уделенное время!

В Ruby игра с HereDocs может быстро повлиять на удобочитаемость исходного кода, особенно когда вам приходится иметь дело с вызовами методов и несколькими HereDocs. Простой способ справиться с этим неудобством - сохранить ваш HereDoc в переменной

Здесь мы сохраняем наш HAML HereDoc в переменной select_with_options, а затем передаем эту переменную в качестве аргумента метода render_haml.

Но знаете ли вы, что Ruby позволяет передавать HereDoc непосредственно в качестве аргумента вызова метода? Давайте перепишем наш пример

Инкапсулируя <<HAML HereDoc токен в круглые скобки, Ruby автоматически узнает, что за ним следует поток HereDoc и что этот поток завершается, когда закрывающий токен HAML достигается.

Обратите внимание, что вы можете опустить круглые скобки

А что, если мы хотим изменить наш HereDoc, прежде чем передавать его нашему методу?

Здесь мы сохраняем наш запрос SQL в переменной query. Затем мы очищаем наш query для отображения с помощью метода String#squish. Очищенная строка передается как аргумент execute. Наконец, to_a вызывается для возвращаемого значения execute. Давайте перепишем этот оператор, используя синтаксис Ruby.

Вызов метода squish привязан к открывающему токену <<SQL. Затем to_a вызывается для возвращаемого значения execute. Наконец, давайте посмотрим, как передать более одного HereDoc в качестве аргументов данного метода.

Здесь мы складываем HereDocs и вызываем их как несколько аргументов.

Вуаля!