4

私のGemが最初にインストールされたときに実行されるRubyスニペットを書きたい[sudo ]gem install mygem. それはできますか?

4

3 に答える 3

2

実際にサポートされているようには見えません。gem 仕様で設定できるはずの「post_install_message」属性を見つけましたが、コードは実行されません。

オンインストール コードを 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

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

このコマンドの結果をスニペット実行の条件として使用できます。

于 2008-10-22T15:56:56.440 に答える