7

私は「何か」という宝石を持っています。

gem を開発する際に、開発依存として pry を追加したいと考えています。しかし、私はそれをロードする方法がわかりません。

lib/something.rb 内に「require something」がある場合、gem をリリースすると LoadError がスローされます。これは、pry が開発依存関係にすぎないためです。

同時に、コードをコミットしているときに pry を追加したり削除したりしたくありません。

アプリケーションの開発時にのみ pry を要求し、gem の依存関係としては要求しない最善の方法は何ですか?

4

2 に答える 2

3

add_development_dependencyファイルで使用できgemspecます。ブロック内のファイルでrequireそれを行う必要があります。(編集2、以下を参照)lib/something.rbbegin .. rescue LoadError

あなたの場合、それは次のようなものになります:

spec.add_development_dependency 'pry', '~> 0.9.12.2'

の目的は、 gemを実行時にインストールされる依存関係と、実行時にのみインストールされる開発専用の依存関係add_development_dependencyに分けることです。gem install mygemgem install mygem --development

編集:@ Pierre-Louis Gottfroisのソリューション

を直接変更しGemfileてグループを追加しtestます。この質問では、プロセスについて説明します。Yehuda Katzによると、これは好ましい解決策ではないようです。

編集 2:このMaking Ruby Gemsの記事begin require ... rescue LoadErrorによると、明らかに Ruby スクリプトの一般的な方法です。

于 2013-08-20T12:45:30.323 に答える
0

そのための回避策を見つけたと思います。pryコンソールとして使用するようにバンドラーを構成する場合

$ bundle config console pry

Thenpryはそれ自体が必須であり、ソース ファイルで明示的に require する必要はありません。
さらに、「↑」を押すと履歴が取得されます。

于 2016-09-27T13:08:41.877 に答える