El ‘por qué?’ es muy largo de explicar? Me gustaría comprenderlo O:-)
La idea es que una gem es una distribucion, mientras que uno lo que
necesita cargar es una libreria. Queremos cargar el archivo
“active_support.rb”, no cargar (“activar” en argot) la gema
“activesupport”. Las clases etc. estan definidas en las librerias, no
en las gemas.
Algunas gemas en su gemspec indican que al ser activadas debe
cargarse un cierto archivo, y como efecto secundario te encuentras
esa libreria cargada, pero eso nos tiene que dar igual porque no es
la manera de trabajar. Por ejemplo “activesupport” ni siquiera carga
“active_support.rb”:
irb(main):001:0> gem ‘activesupport’ # NO HACER ESTO
=> true
irb(main):002:0> require ‘active_support’
=> true
Observa el segundo true. La activacion de una gema hace referencia a
la version seleccionada, ya que rubygems soporta varias versiones
instaladas de una misma gema:
La idea es que una gem es una distribucion, mientras que uno lo que
necesita cargar es una libreria. Queremos cargar el archivo
“active_support.rb”, no cargar (“activar” en argot) la gema
“activesupport”. Las clases etc. estan definidas en las librerias, no
en las gemas.
[…]
genial. Muchas gracias Xavier.
This forum is not affiliated to the Ruby language, Ruby on Rails framework, nor any Ruby applications discussed here.