¿Cómo limito el número de reemplazos cuando uso gsub?

¿Cómo limita el número de reemplazos realizados por String # gsub en Ruby?

En PHP esto se puede hacer fácilmente con preg_replace, que toma un parámetro para limitar los reemplazos, pero no puedo averiguar cómo hacer esto en Ruby.

gsub reemplaza todas las apariciones.

Puedes probar String # sub

http://ruby-doc.org/core/classes/String.html#M001185

Puede crear un contador y disminuirlo dentro de un bucle gsub.

str = 'aaaaaaaaaa' count = 5 p str.gsub(/a/){if count.zero? then $& else count -= 1; 'x' end} # => "xxxxxaaaaa" 
 str = 'aaaaaaaaaa' # The following is so that the variable new_string exists in this scope, # not just within the block new_string = str 5.times do new_string = new_string.sub('a', 'x') end