this questionにはBundlerの依存関係リストを分析する答えがありました。これはうまくいきますが、 "> ="依存関係のため、実際に使用されているパッケージとバージョンのリストは表示されません。依存関係が何であるのではなく、実際に使用されているパッケージとバージョンのリストを取得する方法はありますか?Bundlerから宝石のバージョンをプログラムで取得する
1
A
答えて
1
これを行う方法は、他の質問に投稿されたものと同様であるように見える:
Rails.logger.debug "Type is " + Bundler.environment.specs.class.to_s
Rails.logger.debug "Value is " + Bundler.environment.specs.to_hash.to_s
が生成されます
Type is Bundler::SpecSet
Value is {"activemodel"=>[#<Gem::Specification name=activemodel version=3.1.3>],
"actionpack"=>[#<Gem::Specification name=actionpack version=3.1.3>],
"actionmailer"=>[#<Gem::Specification name=actionmailer version=3.1.3>]}
このコードは、宝石のすべてを出力しますあなたの現在の環境で使用されているバージョン。その他の質問の答えについては、あなたの現在のレール環境にないもの(例えば、 "テスト"宝石グループに含まれているもの)を含め、すべての依存関係が返されることに注意してください。
1
このコードはBundlerコードベースから抽出され、Railsコンソール内からbundle list
と全く同じことを行います。
Bundler.load.specs.sort_by(&:name).each{|s| puts " * #{s.name} (#{s.version}#{s.git_version})"}; nil
依存関係の配列が必要な場合は、これでもかまいません。
Bundler.load.specs.map{|s| "#{s.name} (#{s.version}#{s.git_version})"}
+0
何らかの理由でユーザーがGemfile/Gemfile.lockにアクセスできないそれ以外の場合は、バンドルリストを入力するだけです。 –
+0
私の変更された回答を参照してください。 –
関連する問題
- 1. Bundlerでローカル宝石を使用する
- 2. BundlerとHeroku:条件付きの宝石/ 2種類の宝石
- 3. インストール済みの宝石から宝石パッケージを作成する
- 4. 私の宝石入りバージョンにレールコミットを得る方法
- 5. 私のGemfile内の宝石を含む「bundler/setup」はなぜですか?
- 6. ルビーの宝石であるコードを取得するには?
- 7. 生産宝石用にBundlerを使用する方法はありますか?
- 8. Rails 3 bundler&rvm:バンドルされた宝石は宝石リストに表示されませんか?
- 9. 宝石用の良いソース「バージョン付き」
- 10. Bundlerを使用してローカルルビーの宝石をパッケージングしていますか?
- 11. Rails&Bundler - レール内にインストールされた宝石アプリケーション
- 12. 宝石のRailsアプリケーションのルートディレクトリを取得するには
- 13. Ruby/SinatraとRest-Graph宝石のFacebookアプリケーションでsigned_requestを取得
- 14. ベストプラクティス、gemfileの各宝石にバージョンを追加しますか?
- 15. 宝石をリリースできる宝石サーバーの作成
- 16. SASS&Compassで特定の宝石のバージョンを要求します
- 17. bundler/capistranoが正しいルビーバージョンの宝石をインストールしていません
- 18. Twitterの宝石
- 19. スプレッドシートの宝石
- 20. 宝石のパッチ
- 21. ジャガーノートの宝石
- 22. インストールする宝石は何ですか?
- 23. 裸のgitリポジトリから宝石をバンドルできますか?
- 24. 宝石のソースコードを見る
- 25. thoughtbot/paperclip宝石の取り付け
- 26. Railsの3宝石は、私はこの宝石をした
- 27. バージョン管理されたディレクトリにないベンダー/宝石のアンパック済みの宝物
- 28. 宝石の連続統合ですか?
- 29. マルチテナントアプリケーションの認可宝石ですか?
- 30. バンドルのフォークされた宝石は古いバージョンを引く
私はすなわち、そのほかの質問に要求された情報のような多くのことを返された情報が欲しい: は[[ "actionmailerの" "3.1.3"] [ "CoffeeScriptの" "2.0.2"]] – Jeremiah
既にバンドルされているプロジェクトに使用されている宝石のリストを取得することを意味しますか?あるいは、Gemfileへのアクセスがないところで他の質問が尋ねたことを意味していますか? –
Gemfileへのアクセスを想定していません。他の質問への答えは、Gemfileにあるものを返します(バージョンでは "〜>"と "> ="が付きます)。私が必要とするのは、正確にインストールされたバージョン情報です。 – Jeremiah