Enlaces de lenguaje Ruby GTFS-realtime¶
Proporciona clases Ruby generadas a partir de la especificación ProtocolBuffer GTFS-realtime. Estas clases te permitirán parsear un binario ProtocolBuffer GTFS-realtime data feed en objetos Ruby.
Obsoleto
A partir de febrero de 2019, la herramienta oficial google-protobuf
Google protoc no admite extensiones en archivos proto2. Una herramienta de terceros, ruby-protocol-buffers, se puede instalar usando gem install ruby-protocol-buffers
, pero no parece coincidir con la estructura existente de los enlaces GTFS Ruby, ya que las pruebas unitarias fallan. Como resultado, estamos obviando los enlaces Ruby hasta que se implemente el soporte oficial para archivos proto2 en las herramientas de búfer de protocolo de Google.
Añadir la dependencia¶
Para utilizar las clases gtfs-realtime-bindings
en tu propio proyecto, primero tienes que instalar la gema Ruby:
gem install gtfs-realtime-bindings
Código de ejemplo¶
El siguiente fragmento de código muestra la descarga de una fuente de datos GTFS-realtime desde una URL determinada, su análisis como FeedMessage (el tipo raíz del esquema GTFS-realtime) y la iteración sobre los resultados.
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
Para más detalles sobre las convenciones de nomenclatura de las clases Ruby generadas a partir de gtfs-realtime.proto, consulta el archivo fuente gtfs-realtime.pb.rb.