Recently we discussed how you can use
String#gsub with a block.
Today we’ll examine another somewhat unknown feature of the
gsub method - the ability to supply a replacement hash as the second argument (which is normally a string).
If the replacement argument is a hash, and the matched text is one of its keys, the corresponding value is the replacement string. Here’s a simple example:
def geekify(string) string.gsub(/[leto]/, 'l' => '1', 'e' => '3', 't' => '7', 'o' => '0') end geekify('leet') # => '1337' geekify('noob') # => 'n00b'
Keep in mind you’re not restricted to single character replacements:
def doctorize(string) string.gsub(/M(iste)?r/, 'Mister' => 'Doctor', 'Mr' => 'Dr') end doctorize('Mister Freeze') # => 'Doctor Freeze' doctorize('Mr Smith') # => 'Dr Smith'
That’s all for today folks! I hope you’ll find this short article useful!