Как условно отформатировать строки в Ruby? - PullRequest
2 голосов
/ 28 декабря 2011

Это то, что я пытался выяснить некоторое время, но не могу понять это.

Допустим, у меня есть эти четыре элемента:

  • name = "Mark"
  • location = ""
  • time = Time.now
  • text - "foo"

И если я использовал str#% для форматирования, вот так: "%s was at the location \"%s\" around %s and said %s" % [name,location,time.to_s,text], как бы мне избежать проблемы пробелов и осиротевших слов?(Например, «Марк был на месте» «около 2011-12-28T020500Z-0400 и сказал foo»)

Есть ли другие методы, которые я мог бы использовать?

1 Ответ

3 голосов
/ 28 декабря 2011

Просто постройте строку по частям и соберите результаты.Вы могли бы легко исправить следующее, если бы у вас был доступ к .blank?(Думаю пусто?)

parts = []
parts << name if name && !name.empty?
parts << "was" if name && !name.empty? && location && !location.empty?
parts << %{at location "#{location}"} if location && !location.empty?
parts << "around #{time}"
parts << "and" if location && !location.empty? && text && !text.emtpy?
parts << "said #{text}" if text && !text.empty?
parts.join(" ")
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...