4

我想编写一个 Ruby 片段,当我的 Gem 首次通过[sudo ]gem install mygem. 可以做到吗?

4

3 回答 3

2

它看起来并不真正受到支持。我找到了一个“post_install_message”属性,您应该可以在 gem 规范中设置它,但它不会执行代码。

您可以通过将安装时的代码打包为 gem 中的扩展(就好像它是本机扩展一样)并提供 Rakefile 来“构建”扩展(即调用您的代码)来做到这一点。

于 2008-10-23T14:22:03.900 回答
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
于 2015-01-17T11:04:39.310 回答
-3

您可以尝试使用调用操作系统命令来执行此操作。我会从 irb 引用 eample,但你也可以在你的脚本中做同样的事情。

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

您可以使用此命令的结果作为代码段执行的条件。

于 2008-10-22T15:56:56.440 回答