2009/7/8 Matias Pablo Brutti <[email protected]>: > Mientras le agregaba features a una tool me encontre con que tenia que > agregar a mi .gemspec una gem "win32ole". La tool tambien funciona en > Linux/osx (primordialmente), entonces agregarle la dependencia de win32ole > todo el tiempo no tiene sentido. Me preguntaba si alguien sabe como hacerlo > sin tener que usar rake. > Busque y busque pero no encontre nada en la documentacion. Se me ocurrio > hacer un require 'platform' y en el add_dependency lo filtre con un if > Platform::IMPL == :mswin , pero no creo sea "the ruby way" ajajaj > Slds. >
Hola Matias, Tu gem necesita win32/win32ole, o la version Pure-Ruby? Pregunto esto por que win32ole no es una gema, sino una extension que viene integrada en Ruby en su instalacion de Windows. C:\Users\Luis>irb irb(main):001:0> require 'win32ole' => true irb(main):002:0> pp $LOADED_FEATURES.sort ["Win32API.so", "e2mmap.rb", "etc.so", "irb.rb", "irb/completion.rb", "irb/context.rb", "irb/extend-command.rb", "irb/init.rb", "irb/input-method.rb", "irb/locale.rb", "irb/notifier.rb", "irb/output-method.rb", "irb/ruby-lex.rb", "irb/ruby-token.rb", "irb/slex.rb", "irb/workspace.rb", "pp.rb", "prettyprint.rb", "rbreadline.rb", "readline.rb", "win32ole.so"] === Lo que deberias hacer es colocar un condicional de la plataforma alrededor del require que invoca win32ole. if RUBY_PLATFROM =~ /mingw|mswin/ then require 'win32ole' # ... end De esta manera, tenes solo una gema, con plataforma RUBY, y condicionalmente y en tiempo de ejecución determinas si estas en Windows para requerir ese componente. Asi tambien evitas usar Rake, que parece que no te agrada :-P Espero esto te sirva. Saludos, -- Luis Lavena AREA 17 - Perfection in design is achieved not when there is nothing more to add, but rather when there is nothing more to take away. Antoine de Saint-Exupéry _______________________________________________ Ruby mailing list [email protected] http://lista.rubyargentina.com.ar/listinfo.cgi/ruby-rubyargentina.com.ar
