ver - ¿Cómo puedo escribir un enlace que se llama cuando se instala un RubyGem?
ver version de rails (3)
Puede intentar hacer esto usando la llamada de los comandos del sistema operativo. Citaré eample de irb pero también puedes hacer lo mismo en tus scripts.
irb(main):001:0> system ''gem list | grep rails''
rails (2.1.1, 2.1.0)
=> true
irb(main):002:0> system ''gem list | grep railssssss''
=> false
Puede usar el resultado de este comando como condición de la ejecución de su fragmento.
Me gustaría escribir un fragmento de Ruby que se ejecuta cuando mi gema se instala por primera vez a través de [sudo ]gem install mygem
. Se puede hacer?
No parece que realmente sea compatible. Encontré un atributo "post_install_message" que debería poder establecer en la especificación gem, pero que no ejecutará el código.
Puede hacerlo empaquetando su código de instalación como una extensión en su gema (como si fuera una extensión nativa), y proporcionando un Rakefile para "construir" la extensión (es decir, llame a su código).
Yo tuve el mismo problema. La mejor solución que encontré es la siguiente:
# your_gem.gemspec
Gem::Specification.new do |spec|
# ...
spec.extensions = [''Rakefile'']
end
-
# Rakefile
task :prepare do
# Execute your post-installation code here
end
task default: :prepare