Aller au contenu

Liaisons de langage Ruby GTFS-realtime

Gem Version

Fournit des classes Ruby générées à partir du GTFS-realtime Protocole Spécification du tampon. Ces classes vous permettront d’analyser un flux de données binaires en temps réel Protocol Buffer GTFS dans des objets Ruby.

Deprecated

Depuis février 2019, l’outil officiel de protocole Google google-protobuf ne prend pas en charge les extensions dans proto2 des dossiers. Un outil tiers, ruby-protocol-buffers, peut être installé à l’aide de m install ruby-protocol-buffers`, mais ne semble pas le faire correspondre à la structure existante des liaisons Ruby GTFS-rt, car les tests unitaires échouent. En conséquence, nous déprécions les liaisons Ruby jusqu’à ce que la prise en charge officielle des fichiers proto2 soit implémentée dans les outils de tampon de protocole de Google.

Ajouter la dépendance

Pour utiliser les classes gtfs-realtime-bindings dans votre propre projet, vous devez d’abord installer le Ruby gem :

gem install gtfs-realtime-bindings

Exemple de code

L’extrait de code suivant montre le téléchargement d’un flux de données GTFS Realtime à partir d’une URL particulière, en l’analysant comme un FeedMessage (le type racine du GTFS-schéma en temps réel) et itérer sur les résultats.

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

Pour plus de détails sur les conventions de dénomination des classes Ruby générées à partir de le gtfs-realtime.proto, consultez le le fichier source gtfs-realtime.pb.rb.