Is there a simple way to overwrite a string, something like the following, or something similar?
s = "123456"
r1 = "abc"
s.loverwrite(r1) # => "abc456"
s.coverwrite(r1) # => "12abc6" (or "1abc56")
s.roverwrite(r1) # => "123abc"
r2 = "abcdefghi"
s.loverwrite(r2) # => "abcdef"
s.coverwrite(r2) # => "bcdefg" (or "cdefgh")
s.roverwrite(r2) # => "defghi"
Pretty easy with []=
:
class String
def loverwrite(s)
dup.tap{|result| result[0, s.length] = s[0, length]}
end
end