Прекратить анализ при попадании на пустую строку

У меня есть приложение 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
Другие вопросы по тегам