跳转至

Ruby GTFS-realtime 语言绑定

宝石版本

提供从GTFS-realtime ProtocolBuffer规范中生成的Ruby类。 这些类将允许你解析一个二进制的ProtocolBuffer GTFS-realtime数据馈送到Ruby对象。

废弃的

*截至2019年2月,官方的google-protobufGoogle protoc工具不支持proto2文件的 扩展。 第三方工具ruby-protocol-buffers可以使用gem install ruby-protocol-buffers来安装,但似乎不符合Ruby GTFS绑定的现有结构,因为单元测试失败。 因此,在谷歌协议缓冲区工具实现对proto2文件的正式支持之前,我们将废弃Ruby的绑定方式。

添加依赖关系

要在你自己的项目中使用gtfs-realtime-bindings类,你需要首先安装Ruby gem

gem install gtfs-realtime-bindings

示例代码

下面的代码片段演示了从一个特定的URL下载GTFS-realtime数据源,将其解析为FeedMessage(GTFS-realtime模式的根类型),并对结果进行迭代。

require 'protobuf'
require 'google/transit/gtfs-realtime.pb'
require 'net/http'
require 'uri'

data = Net::HTTP.get(URI.parse("URL OF YOUR GTFS-REALTIME SOURCE GOES HERE"))
feed = Transit_realtime::FeedMessage.decode(data)
for entity in feed.entity do
  if entity.field?(:trip_update)
    p entity.trip_update
  end
end

关于从gtfs-realtime.proto生成的Ruby类的命名规则的更多细节,请查看gtfs-realtime.pb.rb源文件