Class: String
- Inherits:
-
Object
- Object
- String
- Defined in:
- lib/brstring/string_portuguese.rb
Constant Summary collapse
- MINUSCULAS_COM_ACENTO =
'áéíóúâêîôûàèìòùäëïöüãõñç'
- MAIUSCULAS_COM_ACENTO =
'ÁÉÍÓÚÂÊÎÔÛÀÈÌÒÙÄËÏÖÜÃÕÑÇ'
- MINUSCULAS =
"abcdefghijklmnopqrstuvwxyz#{MINUSCULAS_COM_ACENTO}"
- MAIUSCULAS =
"ABCDEFGHIJKLMNOPQRSTUVWXYZ#{MAIUSCULAS_COM_ACENTO}"
Class Method Summary collapse
-
.downcase(texto) ⇒ Object
Retorna uma string com caracteres minúsculos.
-
.nome_proprio(texto) ⇒ Object
Normaliza nomes proprios.
-
.remover_acentos(texto) ⇒ Object
Remove as letras acentuadas.
-
.titleize(texto) ⇒ Object
Passa a primeira letra de cada palavra para maiúscula e as demais para minúsculas.
-
.upcase(texto) ⇒ Object
Retorna uma string com caracteres maiusculos.
Instance Method Summary collapse
-
#downcase ⇒ Object
Retorna uma string com caracteres minúsculos.
-
#downcase! ⇒ Object
Converte para caracteres minúsculos na própria instância.
-
#nome_proprio ⇒ Object
Normaliza nomes proprios.
-
#nome_proprio! ⇒ Object
Normaliza nomes proprios na própria instância.
-
#remover_acentos ⇒ Object
Remove as letras acentuadas.
-
#remover_acentos! ⇒ Object
Remove as letras acentuadas na própria instância.
-
#titleize ⇒ Object
Passa a primeira letra de cada palavra para maiúscula e as demais para minúsculas.
-
#titleize! ⇒ Object
Passa a primeira letra de cada palavra para maiúscula e as demais para minúsculas na própria instância.
-
#upcase ⇒ Object
Retorna uma string com caracteres maiusculos.
-
#upcase! ⇒ Object
Converte para caracteres maiusculos na própria instância.
Class Method Details
.downcase(texto) ⇒ Object
Retorna uma string com caracteres minúsculos
Exemplo:
String.downcase('TEXTO COM ACENTUAÇÃO') ==> 'texto com acentuação'
98 99 100 101 |
# File 'lib/brstring/string_portuguese.rb', line 98 def self.downcase(texto) return texto if texto.nil? or texto.empty? texto.tr(MAIUSCULAS, MINUSCULAS) end |
.nome_proprio(texto) ⇒ Object
Normaliza nomes proprios
Exemplo:
String.nome_proprio('maria de souza dos santos e silva da costa') ==> 'Maria de Souza dos Santos e Silva da Costa'
13 14 15 16 |
# File 'lib/brstring/string_portuguese.rb', line 13 def self.nome_proprio(texto) return texto if texto.blank? self.titleize(texto).gsub(/ D(a|e|o|as|os) /, ' d\1 ').gsub(/ E /, ' e ') end |
.remover_acentos(texto) ⇒ Object
Remove as letras acentuadas
Exemplo:
String.remover_acentos('texto está com acentuação') ==> 'texto esta com acentuacao'
40 41 42 43 44 45 46 47 |
# File 'lib/brstring/string_portuguese.rb', line 40 def self.remover_acentos(texto) return texto if texto.blank? texto = texto.gsub(/(á|à|ã|â|ä)/, 'a').gsub(/(é|è|ê|ë)/, 'e').gsub(/(í|ì|î|ï)/, 'i').gsub(/(ó|ò|õ|ô|ö)/, 'o').gsub(/(ú|ù|û|ü)/, 'u') texto = texto.gsub(/(Á|À|Ã|Â|Ä)/, 'A').gsub(/(É|È|Ê|Ë)/, 'E').gsub(/(Í|Ì|Î|Ï)/, 'I').gsub(/(Ó|Ò|Õ|Ô|Ö)/, 'O').gsub(/(Ú|Ù|Û|Ü)/, 'U') texto = texto.gsub(/ñ/, 'n').gsub(/Ñ/, 'N') texto = texto.gsub(/ç/, 'c').gsub(/Ç/, 'C') texto end |
.titleize(texto) ⇒ Object
Passa a primeira letra de cada palavra para maiúscula e as demais para minúsculas.
Exemplo:
String.titleize('o livro esta sobre a mesa!') ==> 'O Livro Esta Sobre A Mesa!'
125 126 127 128 129 130 131 132 |
# File 'lib/brstring/string_portuguese.rb', line 125 def self.titleize(texto) return texto if texto.nil? or texto.empty? texto = texto.downcase texto = texto.downcase texto.mb_chars[0] = texto.mb_chars.first.upcase texto = texto.gsub(/\s[a-z#{String::MINUSCULAS_COM_ACENTO}]/) {|a| a.upcase } texto end |
.upcase(texto) ⇒ Object
Retorna uma string com caracteres maiusculos
Exemplo:
String.upcase('texto com acentuação' ==> 'TEXTO COM ACENTUAÇÃO'
71 72 73 74 |
# File 'lib/brstring/string_portuguese.rb', line 71 def self.upcase(texto) return texto if texto.nil? or texto.empty? texto.tr(MINUSCULAS, MAIUSCULAS) end |
Instance Method Details
#downcase ⇒ Object
Retorna uma string com caracteres minúsculos
Exemplo:
'TEXTO COM ACENTUAÇÃO'.downcase ==> 'texto com acentuação'
107 108 109 |
# File 'lib/brstring/string_portuguese.rb', line 107 def downcase String.downcase(self) end |
#downcase! ⇒ Object
Converte para caracteres minúsculos na própria instância
Exemplo:
texto = 'TEXTO COM ACENTUAÇÃO'
texto.downcase
texto ==> 'texto com acentuação'
117 118 119 |
# File 'lib/brstring/string_portuguese.rb', line 117 def downcase! self.gsub!(/^.*$/, String.downcase(self)) if self end |
#nome_proprio ⇒ Object
Normaliza nomes proprios
Exemplo:
'maria de souza dos santos e silva da costa'.nome_proprio ==> 'Maria de Souza dos Santos e Silva da Costa'
22 23 24 |
# File 'lib/brstring/string_portuguese.rb', line 22 def nome_proprio String.nome_proprio(self) end |
#nome_proprio! ⇒ Object
Normaliza nomes proprios na própria instância.
Exemplo:
texto = 'maria de souza dos santos e silva da costa'
texto.nome_proprio!
texto ==> 'Maria de Souza dos Santos e Silva da Costa'
32 33 34 |
# File 'lib/brstring/string_portuguese.rb', line 32 def nome_proprio! self.gsub!(/^.*$/, String.nome_proprio(self)) if self end |
#remover_acentos ⇒ Object
Remove as letras acentuadas
Exemplo:
'texto está com acentuação'.remover_acentos ==> 'texto esta com acentuacao'
53 54 55 |
# File 'lib/brstring/string_portuguese.rb', line 53 def remover_acentos String.remover_acentos(self) end |
#remover_acentos! ⇒ Object
Remove as letras acentuadas na própria instância.
Exemplo:
texto = 'texto está com acentuação'
texto.remover_acentos!
texto ==> 'texto esta com acentuacao'
63 64 65 |
# File 'lib/brstring/string_portuguese.rb', line 63 def remover_acentos! self.gsub!(/^.*$/, String.remover_acentos(self)) if self end |
#titleize ⇒ Object
Passa a primeira letra de cada palavra para maiúscula e as demais para minúsculas.
Exemplo:
'o livro esta sobre a mesa!'.titleize ==> 'O Livro Esta Sobre A Mesa!'
138 139 140 |
# File 'lib/brstring/string_portuguese.rb', line 138 def titleize String.titleize(self) end |
#titleize! ⇒ Object
Passa a primeira letra de cada palavra para maiúscula e as demais para minúsculas na própria instância.
Exemplo:
texto = 'o livro esta sobre a mesa!'
texto.titleize!
texto ==> 'O Livro Esta Sobre A Mesa!'
148 149 150 |
# File 'lib/brstring/string_portuguese.rb', line 148 def titleize! self.gsub!(/^.*$/, String.titleize(self)) if self end |