Usar módulo de activesupport

Hola amigos:

En una aplicación fuera de rails quiero usar un módulo de activesupport.
Concretamente :

ActiveSupport::CoreExtensions::Numeric::Time

Cómo debo hacer para usar sus ampliaciones ? Yo lo intento así:

require ‘rubygems’
require_gem ‘activesupport’

class Miclase

include ActiveSupport::CoreExtensions::Numeric::Time

10.years.ago

end

pero me suelta:

NameError: uninitialized constant Miclase::ActiveSupport

Qué hago mal?

On Feb 19, 2007, at 9:04 PM, lumen wrote:

require_gem ‘activesupport’

En lugar de eso va

require ‘active_support’

– fxn

On Mon, Feb 19, 2007 at 09:08:21PM +0100, Xavier N. send:

On Feb 19, 2007, at 9:04 PM, lumen wrote:

require_gem ‘activesupport’

En lugar de eso va

require ‘active_support’

gracias.

El ‘por qué?’ es muy largo de explicar? Me gustaría comprenderlo O:-)

On Feb 19, 2007, at 9:42 PM, lumen wrote:

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:

irb(main):001:0> gem ‘activesupport’, ‘1.4.1’
=> true
irb(main):002:0> require ‘active_support’
=> true

Cuando uno usa

require ‘active_support’

a secas, que es lo normal, rubygems busca que gema mas reciente
contiene ese archivo, la activa automaticamente, y carga el archivo.

– fxn

On Mon, Feb 19, 2007 at 10:10:38PM +0100, Xavier N. send:

gracias.

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.

[…]

genial. Muchas gracias Xavier.