2010-12-02 2 views
2

私は宝石を作成しています、そしてそれはその依存関係をインストールするには、他のプラットフォームのユーザーを強制OSプラットフォーム別にgemの依存関係を選択する必要がありますか?

は非常に良いアイデアではない、と私もよく分からないのMac OS X上で、追加機能のためにrbappscript宝石を使用します。それはまったくインストールされます。だから、プラットフォームに基づいて依存する宝石をカスタマイズすることは可能ですか?これは問題を生じませんか?

答えて

4

これはオプションですが、依存関係ではありません。それだけを宣言しないでください。

rbappscriptが検出された場合、追加の機能が利用可能であることを伝えるメモを文書に追加します。

あなたのコードでは、ライブラリの可用性をチェックするだけです。ユーザーがMacで動作していても、何らかの理由でこの機能をロードしないことを選択できます。たとえば、複数のプラットフォームで予測可能な動作です。

+1

+1を宣言しているRUBY_PLATFORM定数を使用することができます。 –

1

あなたがユーザーに選択する権利を与えるための依存関係

# only on OSX 
if RUBY_PLATFORM =~ /darwin/i 
    gem 'rbappscript' 
end 

# Only JRUBY 
if defined? JRUBY_VERSION 
    gem 'something_for_jruby' 
end 
関連する問題