Backtick in backtrace is a little bit annoying
In Ruby exception backtrace (and other places), the method name uses a quoting style of a backtick followed by a text/name followed by an apostrophy.
The quoting style is not safe, as in, it cannot be relied upon for parsing, because it's easy to inject quotes into the output stream:
irb(main):006:0> self.send(:"I'm Great") Traceback (most recent call last): 4: from /tmp/64556713-b3a1-40a1-b458-bfed3fec55b2:8:in `<main>' 3: from <internal:prelude>:20:in `irb' 2: from /tmp/64556713-b3a1-40a1-b458-bfed3fec55b2:5:in `<main>' 1: from /tmp/64556713-b3a1-40a1-b458-bfed3fec55b2:6:in `rescue in <main>' NoMethodError (undefined method `I'm Great' for main:Object)
Note the last line now has ambiguous quoting.
- Should we fix this quoting style?
- Should we remove this quoting style?
- Should we choose some other quoting style?
As a specific point:
- Can we use two apostrophes rather than a backtick/apostrophe? Backticks often have a special meaning (e.g. markdown) which makes it somewhat annoying to copy and paste.
Updated by sawa (Tsuyoshi Sawada) 10 months ago
The choice of characters used for quoting is irrelevant to such problem, which will not be solved unless the method name is represented escaped such as in string inspection form.
I do not think it is right to parse the error message. If you want access to the method name, you should use