metodos - scan ruby example
Ruby capitaliza cada palabra primera letra (7)
En Rails:
"kirk douglas".titleize => "Kirk Douglas"
#this also works for ''kirk_douglas''
sin rieles:
"kirk douglas".split(/ |/_/).map(&:capitalize).join(" ")
#OBJECT IT OUT
def titleize(str)
str.split(/ |/_/).map(&:capitalize).join(" ")
end
sin rieles (activeSupport de load rails para parchar el método #titleize en String
)
require ''active_support/core_ext''
"kirk douglas".titleize #=> "Kirk Douglas"
(algunos) casos de uso de cadenas manejados por #titleize
- "kirk douglas"
- "kirk_douglas"
- "kirk-douglas"
- "kirkDouglas"
- "KirkDouglas"
#titleize gotchas
El método #titleize es un poco más complejo de lo que uno podría esperar inicialmente y puede producir resultados inesperados, especialmente con situaciones que distinguen entre mayúsculas y minúsculas, como lo señala @JamesMcMahon:
"hEy lOok".titleize #=> "H Ey Lo Ok"
porque está destinado a manejar el código camel-cased como:
"kirkDouglas".titleize #=> "Kirk Douglas"
Para lidiar con este borde, puedes limpiar tu cadena con #downcase
antes de ejecutar #titleize. Por supuesto, si lo haces, eliminarás las separaciones de palabras de camelCase:
"kirkDouglas".downcase.titleize #=> "Kirkdouglas"
Necesito hacer el primer carácter de cada palabra en mayúscula, y hacer el resto en minúscula ...
manufacturer.MFA_BRAND.first.upcase
solo está poniendo la primera letra en mayúscula, pero necesito esto:
ALFA ROMEO => Alfa Romeo
AUDI => Audi
BMW => Bmw
ONETWO THREE FOUR => Onetwo Three Four
Mire en el método String # capitalize.
http://www.ruby-doc.org/core-1.9.3/String.html#method-i-capitalize
Otra opción es usar un regex y un gsub, que toma un bloque:
''one TWO three foUR''.gsub(//w+/, &:capitalize)
Si intentas poner en mayúscula la primera letra de cada palabra en una matriz, simplemente puedes poner esto:
array_name.map (&: capitalize)
prueba esto:
puts ''one TWO three foUR''.split.map(&:capitalize).join('' '')
#=> One Two Three Four
o
puts ''one TWO three foUR''.split.map(&:capitalize)*'' ''
"hello world".titleize
que debería dar salida a "Hello World".
"hello world".split.each{|i| i.capitalize!}.join('' '')