I am trying to iterate through structure elements, look for lines that include the {...} format, and replace them with the corresponding hash line. This is the data I use:
Request = Struct.new(:method, :url, :user, :password) request = Request.new request.user = "{user} {name}" request.password = "{password}" parameters = {"user" => "first", "name" => "last", "password" => "secret"}
This is attempt 1:
request.each do |value| value.gsub!(/{(.+?)}/, parameters["\1"]) end
In this attempt, parameters["\1"] == nil .
Attempt 2:
request.each do |value| value.scan(/{(.+?)}/) do |match| value.gsub!(/{(.+?)}/, parameters[match[0]]) end end
The result is request.user == "first first" . An attempt to parameters[match] results in nil .
Can anyone help to resolve this issue?
ruby regex
Scotty
source share