Actions
Feature #22238
openString#tr to take a Hash for multi-character replacements
Feature #22238:
String#tr to take a Hash for multi-character replacements
Status:
Open
Assignee:
-
Target version:
-
Description
This is @matz's counter proposal to [Feature #22229] from the last dev-meeting
matz: I will counter-propose String#tr-with-hash style.
'Hello </script>'.tr(">" => '\u003e', "<" => '\u003c', "&" => '\u0026') # matz: OK
'Hello </script>'.tr("abc" => 'ABC') # should raise an exception
'Hello </script>'.tr("abc" => 'ABC', "ab" => "XY") # should raise an exception
"fée".tr("é" => "€") # it should work
"Hello".tr("l" => "ABC", "o" => "XYZ") #=> "HeABCABCXYZ"
"Hello".gsub(/./m) { hash[$&] || $& } # gsub equivalent
Notes:
- Hash keys MUST be single characters (but can be multi-byte).
- Values can be multiple characters.
Actions