gpt4 book ai didi

Ruby - 如何找出 .rb 文件中给定 Gem 的所有依赖项?

转载 作者:数据小太阳 更新时间:2023-10-29 08:31:59 25 4
gpt4 key购买 nike

如何在 .rb 文件中找出给定 Gem 的所有依赖项无需依赖 system() 或类似的外部调用?

考虑这个项目:

https://rubygems.org/gems/diamond_shell

它有大约 20 - 25 个依赖项。

我需要遍历所有依赖项,在所有链接依赖关系,并用所有这些填充一个数组。

编辑:感谢您的回答。

最佳答案

您可以从 lib/rubygems/commands/dependency_command.rb 中提取代码。这是我制作的一个简单方法。

require 'rubygems/commands/dependency_command'

def get_dependencies name, local = true
cmd = Gem::Commands::DependencyCommand.new

dependency = cmd.gem_dependency name, nil, nil

specs =
if local
dependency.matching_specs.uniq.sort
else
cmd.fetch_remote_specs(dependency).uniq.sort
end

dependencies = []
specs.each do |spec|
dependencies.concat spec.dependencies.sort_by { |dep| dep.name }.map { |dep| [dep.name, dep.requirement] }
end
dependencies
end

puts get_dependencies('diamond_shell', false)

关于Ruby - 如何找出 .rb 文件中给定 Gem 的所有依赖项?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24169394/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com