Прекратить анализ при попадании на пустую строку
У меня есть приложение Rails, которое анализирует входящие электронные письма на Heroku с помощью дополнения Cloud-mailin. Приложение получает список цен по электронной почте и вставляет их в базу данных.
Это работает нормально, но если электронное письмо содержит, например, подпись внизу, код завершается ошибкой, потому что он также пытается проанализировать этот текст.
Поэтому я хотел бы переписать приведенный ниже код синтаксического анализа, чтобы остановить, когда он попадает в пустую строку в электронном письме. Все данные о ценах всегда в верхней части электронной почты.
email_text = params[:plain]
email_text_array = []
email_text.split("\n").each do |email_line|
email_text_array << email_line.split(" ")
end
Как мне изменить выше, чтобы остановить, когда он попадает на пустую строку в email_taxt
переменная?
Спасибо!
2 ответа
Вы можете добавить break
:
email_text.split("\n").each do |email_line|
break if email_line.blank? # ends loop on first empty line
email_text_array << email_line.split(" ")
end
Помогает ли этот вопрос: есть ли в Ruby цикл "do ... while"?
Изменить 1:
Из приведенной выше статьи, я думаю, что-то вроде этого будет работать:
email_text.split("\n").each do |email_line|
break if email_line.length < 1
email_text_array << email_line.split(" ")
end