Ruby - can't modify frozen string (TypeError)
Got
... '[]=': can't modify frozen string (TypeError)
when trying to modify what I thought was a copy of ARGV[0].
Same results for each of
arg = ARGV[ 0 ]
arg_cloned = ARGV[ 0 ].clone
arg_to_s = ARGV[ 0 ].to_s
arg[ 'x' ] = 'y'
arg_cloned[ 'x' ] = 'y'
arg_to_s[ 'x' ] = 'y'
since google took too long to find the right answer ...
needed to do
arg_dup = ARGV[ 0 ].dup
Since Ruby 2.3 recommended method is to use the unary plus operator, it will return a duplicated mutable string, if a string is frozen.
+arg