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.

Comentários #

#1 Eduardo Fiorezi disse:
03 Ago 07, 10:47AM

Olá Nando,

Bem que o método strip poderia receber este parametro.
Para quem quer apenas retirar os espaços em branco, o strip, lstrip e o rstrip quebra o galho.

http://www.ruby-doc.org/core/classes/String.html#M000835

Abraços,
Eduardo

#2 Nando Vieira disse:
03 Ago 07, 10:56AM

Exatamente. Não entendo como o Matz não pensou nisso! :)
Tem o chomp, mas ele só remove 1 caracter e apenas do final da string. Então, puts '__'.chomp('_') irá retornar "_".

Deixe um comentário





Não é aceito código HTML: adicione-o no pastie.org ou paste.milk-it.net e poste apenas o link.

Se este é seu primeiro comentário, ele terá que ser aprovado antes de ser exibido.

jQuery: Dominando o framework

Você quer aprender a usar jQuery de verdade? Então chegou a hora! Neste workshop você verá como funciona este framework de JavaScript, entendendo todos os aspectos que fazem do jQuery uma das melhores ferramentas para desenvolvimento de interfaces.

Saiba mais Fechar

Conheça também o HOWTO