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が古いバージョンの宝石を探しています
- 3. BundlerとHeroku:条件付きの宝石/ 2種類の宝石
- 4. 特定のバージョンの宝石のBundler設定を設定します
- 5. インストール済みの宝石から宝石パッケージを作成する
- 6. BundlerはGithubからプルされた宝石をどこにインストールしますか?
- 7. Ruby Bundler - 複数のVMで宝石を扱う
- 8. 宝石は宝石を実行しているとき、私は、次の取得インストール宝石
- 9. 宝石からRubyプロジェクトのルートパスを取得
- 10. 私のGemfile内の宝石を含む「bundler/setup」はなぜですか?
- 11. 私の宝石入りバージョンにレールコミットを得る方法
- 12. ルビーの宝石であるコードを取得するには?
- 13. Rails 3 bundler&rvm:バンドルされた宝石は宝石リストに表示されませんか?
- 14. 生産宝石用にBundlerを使用する方法はありますか?
- 15. Bundlerを使用してローカルルビーの宝石をパッケージングしていますか?
- 16. 宝石用の良いソース「バージョン付き」
- 17. Rails&Bundler - レール内にインストールされた宝石アプリケーション
- 18. bundlerを使って 'minitest/spec'ベースの宝石を生成するには?
- 19. 宝石のRailsアプリケーションのルートディレクトリを取得するには
- 20. ファジーマッチ宝石から5つの結果を得るには?
- 21. Herokuエラー - Bundler経由で宝石をインストールできませんでした
- 22. ドアキーバーの宝石とノックの宝石
- 23. Rails - rbenv、rvm、bundler。複数のレールと宝石のバージョンを扱うときに使う?
- 24. 宝石をリリースできる宝石サーバーの作成
- 25. ベストプラクティス、gemfileの各宝石にバージョンを追加しますか?
- 26. SASS&Compassで特定の宝石のバージョンを要求します
- 27. Ruby/SinatraとRest-Graph宝石のFacebookアプリケーションでsigned_requestを取得
- 28. 宝石:: InstallError:「nio4rのネイティブ宝石をインストールする必要がビルドツール
- 29. Gemfile.lockのバージョンに応じて宝石をロールバックする
- 30. プログラムでASP.NETバージョンを取得する
私はすなわち、そのほかの質問に要求された情報のような多くのことを返された情報が欲しい: は[[ "actionmailerの" "3.1.3"] [ "CoffeeScriptの" "2.0.2"]] – Jeremiah
既にバンドルされているプロジェクトに使用されている宝石のリストを取得することを意味しますか?あるいは、Gemfileへのアクセスがないところで他の質問が尋ねたことを意味していますか? –
Gemfileへのアクセスを想定していません。他の質問への答えは、Gemfileにあるものを返します(バージョンでは "〜>"と "> ="が付きます)。私が必要とするのは、正確にインストールされたバージョン情報です。 – Jeremiah