Forum: Rails-ES rubygems en gentoo... sólo con requ ire_gem ?

Announcement (2017-05-07): www.ruby-forum.com is now read-only since I unfortunately do not have the time to support and maintain the forum any more. Please see rubyonrails.org/community and ruby-lang.org/en/community for other Rails- und Ruby-related community platforms.
D3ac444b32831e42e45534de7ba89b84?d=identicon&s=25 brainstorm (Guest)
on 2007-01-27 00:14
(Received via mailing list)
Hola Raileros,

Desde que instalé RoR en my sistema (Gentoo GNU/Linux), me intriga el
comportamiento de las rubygems. Al parecer, el método obsoleto
"require_gem" es la única forma de cargar gemas en mi sistema:

$ irb
irb(main):001:0> require 'activerecord'
LoadError: no such file to load -- activerecord
        from
/usr/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:21:in
`require__'
        from
/usr/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:21:in
`require'
        from (irb):1
irb(main):002:0> require_gem 'activerecord'
=> true
irb(main):003:0>

He encontrado síntomas similares, pero que no se ajustan al mio:

http://www.mail-archive.com/gentoo-alt@lists.gento...

Cabe decir que gentoo puede ser un tanto especial gestionando las
rubygems:

http://gentoo-wiki.com/HOWTO_RoR (ver Rake Warnings)
http://rubyforge.org/pipermail/rubygems-developers...

Aún así, no me explico el porque un método deprecated funcione y el
que se supone "oficial"o recomendado por todos lados falle :-/ Alguna
idea ?

Gracias,
brainstorm
A6344ef7ef1e33e8efb34d99e6124490?d=identicon&s=25 Imobach González Sosa (Guest)
on 2007-01-27 02:22
(Received via mailing list)
El Friday 26 January 2007 23:12:56 brainstorm escribió:
> `require__'
>         from /usr/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:21:in
> `require'
>         from (irb):1
> irb(main):002:0> require_gem 'activerecord'
> => true
> irb(main):003:0>

¿Y qué tal si haces "require 'active_record'"? (fíjate en el guión
bajo).

Ya nos contarás.

Saludos.
D3ac444b32831e42e45534de7ba89b84?d=identicon&s=25 brainstorm (Guest)
on 2007-01-27 15:49
(Received via mailing list)
irb(main):001:0> require 'active_record'
=> false
irb(main):002:0> require 'netaddr'
MissingSourceFile: no such file to load -- netaddr
        from
/usr/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:21:in
`require__'
        from
/usr/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:21:in
`require'
        from
/usr/lib/ruby/gems/1.8/gems/activesupport-1.3.1/lib/active_support/dependencies.rb:147:in
`require'
        from (irb):2
irb(main):003:0> require_gem 'netaddr'
=> true
irb(main):006:0> require 'net_addr'
=> false

Interesante... parece que se soluciona usando la notación "_"
(teniendo en mente la version en CamelCase de la gem para saber dónde
separar, p.ej: ActiveRecord => active_record, NetAddr => net_addr,
etc...).

Alguien que conozca mejor las entrañas de rubygems puede indagar más
en el porque ?

Gracias !
7223c62b7310e164eb79c740188abbda?d=identicon&s=25 Xavier Noria (Guest)
on 2007-01-27 16:17
(Received via mailing list)
On Jan 27, 2007, at 3:48 PM, brainstorm wrote:

>         from /usr/lib/ruby/gems/1.8/gems/activesupport-1.3.1/lib/
> separar, p.ej: ActiveRecord => active_record, NetAddr => net_addr,
> etc...).

Aja, ocurre que el nombre de una gema no tiene por que coincidir con
el nombre de los .rb que proveen (que es lo que require busca). En
los dos ejemplos sucede eso.

Se podia usar netaddrd cargado de ese modo porque require_gem recibe
un nombre de gema, y las gemas pueden indicar que se haga un auto-
require de alguno de los ficheros que proveen:

   Gem::Specification.new do |s|
     s.name = %q{netaddr}
     s.version = "1.1.0"
     s.date = %q{2007-01-05}
     s.summary = %q{A package for manipulating network addresses.}
     s.email = %q{dspinhir@yahoo.com}
     s.autorequire = %q{net_addr}
     ...
   end

de manera que se hacia un require 'net_addr'.

-- fxn
This topic is locked and can not be replied to.