如何解码'https://rubygems.org/latest_specs.4.8.gz'中的文件

时间:2013-11-24 11:44:12

标签: ruby rubygems gem bundle

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

如何解码此文件,而我已经解压缩并发现了一些不可读的字符!

或者有宝石​​可以做到吗?

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

1 个答案:

答案 0 :(得分:4)

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

该文件是一个大型的gzip和Marshal'd(二进制序列化)数组,其中包含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