コンテンツにスキップ

Ruby GTFS-realtime 言語バインディング

Gem バージョン

[GTFS-realtime](](https://github.com/google/transit/tree/master/gtfs-realtime) プロトコル バッファ仕様から生成された Ruby クラスを提供します。これらのクラスを使用すると、バイナリ プロトコル バッファ GTFS-realtime データ フィードを Ruby オブジェクトに解析できます。

非推奨

2019年2月現在、公式のgoogle-protobuf Google protoc ツールは、proto2 ファイルの 拡張機能 をサポートしていません。サードパーティ ツールの ruby-protocol-buffers は、 m install ruby-protocol-buffers`を使用してインストールできますが、単体テストが失敗するため、Ruby GTFS-rt バインディングの既存の構造と一致していないようです。そのため、proto2 ファイルの公式サポートが Google プロトコル バッファ ツールに実装されるまで、Ruby バインディングは非推奨となります。

依存関係の追加

独自のプロジェクトでgtfs-realtime-bindingsクラスを使用するには、まず Ruby gem をインストールする必要があります。

gem install gtfs-realtime-bindings

サンプル コード

次のコード スニペットは、特定の URL から GTFS リアルタイム データ フィードをダウンロードし、それをFeedMessage (GTFS リアルタイム スキーマのルート タイプ) として解析し、結果を反復処理する方法を示しています。

``y require ’protobuf’ require ’google/transit/gtfs-realtime.pb’ require ’net/http’ require ’uri’

data = Net::HTTP.get(URI.parse("GTFS-REALTIME ソースの URL をここに入力します")) 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 ソース ファイル を参照してください。