Capitalizando una cadena de texto

Ruby:
Capitalizando una cadena de texto

Cómo hacerlo:

Ruby proporciona métodos directos para la manipulación de cadenas, incluida la capitalización:

# Método incorporado de Ruby
string = "hello WORLD"
capitalized_string = string.capitalize
puts capitalized_string # => "Hello world"

Muy práctico.

El método .capitalize de Ruby es conveniente pero solo convierte en mayúscula la primera letra. Para tener más control o para capitalizar cada palabra en una cadena (conocido como caso de título), podrías querer usar el método titleize de la extensión ActiveSupport de Rails, o implementarlo tú mismo:

# Usando 'titleize' de ActiveSupport en Rails
require 'active_support/core_ext/string/inflections'
string = "hello world"
puts string.titleize # => "Hello World"
# Una solución casera
string = "hello world"
capitalized_each_word = string.split.map(&:capitalize).join(' ')
puts capitalized_each_word # => "Hello World"

Este método divide la cadena en un arreglo de palabras, capitaliza cada una, luego las une de nuevo con un espacio.

Personalmente, llevo esta idea mucho más lejos en mi código. Escribí mi propio método titleize que tiene en cuenta palabras pequeñas como “a” y “the”.