%2B Double Decode When Passing To pattern/target Controller?
If I have a get /foo/:bar do |bar| in the root controller and send it something like "test%2Bcall" then bar will correctly equal "test+call". However, if I have a target controller class that receives the pattern /foo with a get /:bar do |bar| and send it the same thing, then bar will incorrectly equal "test call", the plus is decoded into a space. Is there any way to get plus signs to survive the journey?
@tmilker I haven't had time (yet) to investigate this, but will hopefully find time in the next week.
@tmilker, this has been fixed in v1.1.0-pre. It's pre-release because I also updated Rack to 3.x so want to give it more of a run in the wild before making it v1.1.0 proper.
The fix was to basically exclude "+" signs from ever being unescaped into space characters. The exception being in the query string portion of the URL, which is correct behaviour as that follows application/x-www-form-urlencoded encoding rules where "+" signs are meant to be decoded into space characters.