Как насчет этого
puts "'".gsub("'","\\\\'")
\'
Причина в том, что \'
означает после совпадения в gsub (регулярное выражение), и из-за этого его необходимо экранировать с помощью \\'
, а \
явно экранируется как \\
, заканчивающийся \\\\'
.
Пример
>> "abcd".gsub("a","\\'")
=> "bcdbcd"
a
заменяется на все после a
.