加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

ruby – 如何通过网络获取所有宝石名称?

发布时间:2020-12-17 01:50:33 所属栏目:百科 来源:网络整理
导读:https:// rubygems.org/api/v1/search.json只提供30个宝石,但在我的本地机器上,我可以使用gem list –remote获得所有宝石. 我阅读了http://guides.rubygems.org/rubygems-org-api/,并且不存在可以获取列表中所有宝石的API.如何通过网络获取列表?或者,有人提
https:// rubygems.org/api/v1/search.json只提供30个宝石,但在我的本地机器上,我可以使用gem list –remote获得所有宝石.

我阅读了http://guides.rubygems.org/rubygems-org-api/,并且不存在可以获取列表中所有宝石的API.如何通过网络获取列表?或者,有人提供这个吗?

我想要宝石的名字至少,但如果可能的话,我想得到名称和版本.

我认为gem list –remote是通过web,所以我可以获得所有的gem列表.

解决方法

您可以使用https://rubygems.org/latest_specs.4.8.gz返回gzipped marshal dumped数组,如下所示:

[["abscss",Gem::Version.new("0.0.1"),"ruby"],["absee",Gem::Version.new("1.0"),["absentee_camper",Gem::Version.new("0.0.7"),["absgit",Gem::Version.new("0.3.0"),["absinthe",Gem::Version.new("0.0.3"),["absolute",Gem::Version.new("0.0.5"),["AbsoluteRenamer",Gem::Version.new("1.1.2"),["AbsoluteRenamer-date",Gem::Version.new("0.1.0"),"ruby"]]

但如果你在Ruby中,我强烈建议使用gem fetcher:

require 'rubygems/spec_fetcher'
fetcher = Gem::SpecFetcher.fetcher
tuples = fetcher.detect(:released) { true }

元组现在是[Gem :: NameTuple,Gem :: Remote]的元组数组.你可以用这个做些什么的例子:

tuples[1337][0].name # => GraphvizR
tuples[1337][0].version.to_s # => "0.1.0"

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读