ruby - 如何从 'https://rubygems.org/latest_specs.4.8.gz'解码文件

标签 ruby rubygems bundle

命令gem list --remote发出“https://rubygems.org/latest_specs.4.8.gz”的http请求'.

如何解码这个文件,当我提取它并发现一些不可读的字符时!

或者有没有gem可以做到这一点?

我所做的就是尝试使用 ruby​​ 代码获取完整的 gem 列表!

最佳答案

要解码文件,请使用普通的旧 Ruby Marshal

该文件是一个大的 gzip 压缩和编码(二进制序列化)数组,其中包含 gem 名称、版本和平台:

$ wget http://rubygems.org/latest_specs.4.8.gz
$ irb

> m = Marshal.load(Gem.gunzip(File.read("latest_specs.4.8.gz")))
> m.first #=> ["_", #<Gem::Version "1.2">, "ruby"]
> m[666]  #=> ["activerecord-draft_records", #<Gem::Version "0.5.1">, "ruby"]
> m.last  #=> ["zzzzzz", #<Gem::Version "0.0.3">, "ruby"]
> m.size  #=> 66756

关于ruby - 如何从 'https://rubygems.org/latest_specs.4.8.gz'解码文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20174066/

相关文章:

ruby-on-rails - bundle 安装找不到 gem "bundler"的兼容版本

ruby - "bad ecpoint"在 OSX Mountain Lion 上安装新的 RVM Ruby 1.9.3 时出现 SSL 错误

ruby - 对具有唯一 object_id 的属性数组求和

ruby-on-rails - Typus 路由顺序

ruby-on-rails - 如何处理 Rails Gem 的配置

android - (Android) Bundle 和 Application 哪个更好?

java - 单击Button时,App崩溃(在两个类之间传递字符串。)

ruby - 如何将字符串汇总为 shell glob

ruby - 无法以非 root 用户身份安装 gems

ruby - 我应该将属于 Ruby 标准库的文件添加到 `Gemfile` 吗?