Página Inicial > Desenvolvimento, Ruby > Ruby: require ‘rubygems’

Ruby: require ‘rubygems’

ruby-logo-justruby

Essa semana estive escrevendo alguns códigos usando Ruby on Rails, e encontrei um problema, que demorei um pouco para descobrir sua solução, mas no fim se tratava de algo muito simples e lógico.

Ao instalar o Rails e qualquer outro pacote pelo rubygems ( gem install hpricot, por exemplo), para importar esse pacote no código, é necessário importar a biblioteca do rubygems primeiro.

Manual do RubyGems ( http://docs.rubygems.org/read/book/1 ).

Na prática, eu estava utilizando o código abaixo:

require 'hpricot' 
require 'open-uri' 
meuXml = Hpricot.XML(open("http://www.exemplo.com/exemplo.xml"))

Este codigo abre uma URL, captura seu XML e armazena o conteúdo em uma variável ( string ).

Porém, isso só é possível se incluir a biblioteca do rubygems. Verifique o código abaixo, desta vez, funcionando:

require 'rubygems'
require 'hpricot'
require 'open-uri' 
meuXml = Hpricot.XML(open("http://www.exemplo.com/exemplo.xml"))

 

Bom, então é isso !
—————–
Baseado no comentário recebido depois da publicação deste Post, visite também:
http://www.rafaelbiriba.com/2009/04/29/ruby-require-rubygems-alternativas.html

Submarino.com.br
  1. 13, abril, 2009 em 15:09 | #1
  2. 13, abril, 2009 em 15:35 | #2

    Ou isso ! :)

    Valeu pela dica !

  3. 29, abril, 2009 em 15:47 | #3
  4. 19, novembro, 2009 em 15:30 | #4

    Na verdade a expressao do Guilherme Chapiewski eh uma daquelas maximas que soh eh verdadeira em um contexto bem especifico…

    Nao existe nade de errado em usar o rubygems… se eu tenho uma app ou uma framework que roda no contexto fechado dela nao existe problema algum em requeri-la.

    Quando estamos falando de libs, plugins ou apps que devem rodar embutidas em outros ambientes/frameworks, aih sim nao eh adequado pressupor que o ambiente vai estar rodando/gerenciando as gems com o rubygems.

    Essa maxima daih eh muito perigosa como a maioriadas maximas e requer uma explicacao bem ampla… usar ou nao o rubygems eh muito mais uma questao de onde e pra que se esta criando a app.

    No caso especifico do post, era uma aplicacao rodando dentro do Rails e o script aih deveria estar rodando atraves do script/runner que jah iria tratar de achar uma instancia do rails que deve se encarregar de controlar o require/load das gems em questao.

  1. 29, abril, 2009 em 09:00 | #1
  2. 30, abril, 2009 em 14:00 | #2
  3. 16, outubro, 2009 em 17:00 | #3

 

Submarino.com.br