Токены HereDocs как аргумент метода
Обзор того, как взаимодействовать с HereDocs в качестве аргумента
Прежде чем начать
Позвольте мне представить здесь платформу, которая помогла мне изучить большую часть моих знаний о Ruby. Действительно, Pluralsight - потрясающая платформа.
С 50+ курсами, которые охватывают различные темы по Ruby и Ruby on Rails, это лучший способ поднять свои знания на новый уровень!
Попробуйте бесплатно 👇😉
Спасибо за уделенное время!
В 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 и вызываем их как несколько аргументов.
Вуаля!