我想编写一个Ruby代码段,在我的Gem首次通过[sudo ]gem install mygem
安装时运行。可以吗?
答案 0 :(得分:2)
它看起来并不真正得到支持。我找到了一个“post_install_message”属性,您应该能够在gem规范中设置该属性,但这不会执行代码。
您可以通过将安装后的代码打包为gem中的扩展名(就好像它是本机扩展名),并提供Rakefile来“构建”扩展(即调用您的代码)。
答案 1 :(得分:1)
我遇到了同样的问题。我找到的最佳解决方案如下:
# 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
答案 2 :(得分:-2)
您可以尝试使用OS命令调用来执行此操作。我会引用irb的例子,但你也可以在你的脚本中做同样的事。
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
您可以使用此命令的结果作为代码段执行的条件。