Попытка заменить {varN} в строке фактическими значениями - PullRequest
0 голосов
/ 30 октября 2018

У меня есть строка:

s = ExternalLibrary::get_string_data
# ====> my_string_{var1}___{var2}

Я хочу заменить "var1" и "var2". Это не работает:

s % {var1: "aa", var2: "bb"}
# ====> my_string_{var1}___{var2}

Ответы [ 2 ]

0 голосов
/ 31 октября 2018

Ruby использует %{, а не { для интерполяции из хеша:

s.gsub("{", "%{") % { var1: "foo", var2: "bar" }
# => "my_string_foo___bar"
0 голосов
/ 30 октября 2018

Один вариант, если я получу очко:

s = "my_string_{var1}___{var2}"

substitute = {var1: "aa", var2: "bb"}

s.split(/\{(.*?)\}/).map { |e| substitute[e.to_sym] || e }.join

#=> "my_string_aa___bb"
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...