Removendo caracteres com o método trim no Ruby
Leia em menos de um minuto
Já precisou remover caracteres de uma string, com funções semelhantes a trim, rtrim e ltrim do PHP? Pois é! No Ruby você não tem isso nativamente. Para adicionar tais funcionalidades, basta estender a classe String com os métodos abaixo.
class String
def trim!(chars)
rtrim!(chars)
ltrim!(chars)
end
def rtrim!(chars)
gsub!(/(#{trim_prepare(chars)})+$/, '')
end
def ltrim!(chars)
gsub!(/^(#{trim_prepare(chars)})+/, '')
end
def trim(chars)
dup.rtrim(chars).ltrim(chars)
end
def rtrim(chars)
dup.rtrim!(chars)
end
def ltrim(chars)
dup.ltrim!(chars)
end
private
def trim_prepare(chars)
chars = chars.split("").collect { |char| Regexp.escape(char) }
chars.join('|')
end
end
Seu funcionamento é muito semelhante às funções do PHP. Veja:
text = '|_ ruby _|'
puts text.trim(' _|') # both sides
puts text.ltrim(' _|') # left side
puts text.rtrim(' _|') # right side
Lembre-se que você não precisa passar os caracteres que serão removidos na ordem em que eles aparecem.