Lewati ke isi

Binding Bahasa Ruby GTFS-realtime

Versi Permata

Memberikan kelas Ruby yang dihasilkan dari spesifikasi GTFS-realtime ProtocolBuffer. Kelas ini akan memungkinkan Anda mengurai feed data GTFS-realtime biner ProtocolBuffer ke objek Ruby.

Usang

Mulai Februari 2019, alat protoc Google resmi google-protobuf tidak mendukung ekstensi dalam file proto2. Alat pihak ke-3, ruby-protocol-buffers, dapat diinstal menggunakan gem install ruby-protocol-buffers, tetapi tampaknya tidak cocok dengan struktur yang ada Ruby GTFS-rt binding, karena unit test gagal. Akibatnya, kami tidak lagi menggunakan Ruby binding hingga dukungan resmi untuk file proto2 diterapkan di alat penyangga protokol Google.

Tambahkan Ketergantungan

Untuk menggunakan kelas gtfs-realtime-bindings di proyek Anda sendiri, Anda harus menginstal permata Ruby terlebih dahulu :

gem install gtfs-realtime-bindings

Kode Contoh

Cuplikan kode berikut menunjukkan pengunduhan umpan data GTFS-realtime dari URL tertentu, menguraikannya sebagai FeedMessage (jenis root dari skema GTFS-realtime), dan mengulangi hasilnya.

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

Untuk detail lebih lanjut tentang konvensi penamaan kelas Ruby yang dihasilkan dari gtfs-realtime.proto , lihat file sumber gtfs-realtime.pb.rb .