Class: String

Inherits:
Object
  • Object
show all
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

Instance Method Summary collapse

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

#downcaseObject

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_proprioObject

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_acentosObject

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

#titleizeObject

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

#upcaseObject

Retorna uma string com caracteres maiusculos

Exemplo:

'texto com acentuação'.upcase ==> 'TEXTO COM ACENTUAÇÃO'

80
81
82
# File 'lib/brstring/string_portuguese.rb', line 80

def upcase
  String.upcase(self)
end

#upcase!Object

Converte para caracteres maiusculos na própria instância

Exemplo:

texto = 'texto com acentuação'
texto.upcase
texto ==> 'TEXTO COM ACENTUAÇÃO'

90
91
92
# File 'lib/brstring/string_portuguese.rb', line 90

def upcase!
  self.gsub!(/^.*$/, String.upcase(self)) if self
end