Open akimd opened 1 month ago
Hi Markus,
When there is an interpolation in the heredoc, it comes out underescaped.
require 'unparser' ast = Unparser.parse(<<~'OUTER') <<~RUBY validates :#{field_sid}, format: { with: /\\A\\-+(\\w+\\-+)|(\\w+\\.)\\Z/i } RUBY OUTER p ast puts Unparser.unparse(ast)
s(:dstr, s(:str, "validates :"), s(:begin, s(:send, nil, :field_sid)), s(:str, ", format: {\n"), s(:str, " with: /\\A\\-+(\\w+\\-+)|(\\w+\\.)\\Z/i\n"), s(:str, " }\n")) <<-HEREDOC validates :#{field_sid}, format: { with: /\A\-+(\w+\-+)|(\w+\.)\Z/i } HEREDOC
All the backslashes should be doubled. And they are if I remove the interpolation.
Cheers!
Its very likely this is solved by #366, will test it. Sadly #366 is not ready yet as its a deeper refactor.
Hi Markus,
When there is an interpolation in the heredoc, it comes out underescaped.
All the backslashes should be doubled. And they are if I remove the interpolation.
Cheers!