class NetworkRail::Message::TrainMovement::Movement
Attributes
operator[RW]
planned_time[RW]
time[RW]
Public Class Methods
factory(json_message)
click to toggle source
# File lib/network_rail/message/train_movement/movement.rb, line 14 def self.factory(json_message) event_type = json_message['body']['event_type'] target_class = event_type == 'ARRIVAL' ? Arrival : Departure target_class.new(json_message) end
new(json_message)
click to toggle source
Calls superclass method
NetworkRail::Message::TrainMovement::Base::new
# File lib/network_rail/message/train_movement/movement.rb, line 20 def initialize(json_message) super self.time = Time.at (json_message['body']['actual_timestamp'].to_i / 1000).to_i self.planned_time = Time.at (json_message['body']['planned_timestamp'].to_i / 1000).to_i self.operator = NetworkRail::Operators.numeric_codes.find {|key, value| value == json_message['body']['toc_id'].to_i }.first end
Public Instance Methods
delay()
click to toggle source
# File lib/network_rail/message/train_movement/movement.rb, line 31 def delay (time - planned_time).round end
on_time?()
click to toggle source
# File lib/network_rail/message/train_movement/movement.rb, line 27 def on_time? delay <= NetworkRail.late_threshold end