class TokyoMetro::Api::TrainLocation::Info

個別の列車のロケーション情報を扱うクラス

Attributes

dc_date[R]

データ生成時刻 - xsd:dateTime(ISO8601 日付時刻形式をもとに生成した DateTime のインスタンス) @return [DateTime] @example

2013–01–13T15:10:00+09:00
delay[R]

遅延時間(秒) - xsd:integer @return [Integer] @note 5分未満は切り捨て

frequency[R]

更新頻度(秒) - xsd:integer @return [Integer] @note 指定された秒数以降にリクエストを行うことで、最新値が取得される。

from_station[R]

列車が出発した駅 - odpt:Station @return [String]

railway_direction[R]

方面 - odpt:RailDirection @return [String] @example

odpt.RailDirection:TokyoMetro.Shibuya - 渋谷方面行きを表す
railway_line[R]

鉄道路線ID - odpt:Railway @return [String]

same_as[R]

固有識別子 - URL @return [String] @note API での命名ルールは「odpt.Train:TokyoMetro.路線名.列車番号」

starting_station[R]

列車の始発駅 - odpt:Station @return [String]

terminal_station[R]

列車の終着駅 - odpt:Station @return [String]

to_station[R]

列車が向かっている駅 - odpt:Station @return [String] @return [nil] 列車が駅に停車している場合は nil

train_name[R]
train_number[R]

列車番号 - xsd:string @return [String]

train_owner[R]

車両の所属会社 - odpt:TrainOwner @return [String]

train_type[R]

列車種別 - odpt:TrainType @return [String] @note 各停 (odpt.TrainType:Local) 、急行 (odpt.TrainType:Express) 、快速 (odpt.TrainType:Rapid) 、特急 (odpt.TrainType:LimitedExpress) など

valid[R]

データ保証期限 - xsd:dateTime(ISO8601 日付時刻形式をもとに生成した DateTime のインスタンス) @return [DateTime] @example

2013–01–13T15:10:00+09:00

Public Class Methods

new( id_urn , same_as , train_number , train_type , dc_date , valid , frequency , railway_line , train_owner , railway_direction , delay , starting_station , terminal_station , from_station , to_station ) click to toggle source

Constructor

# File lib/tokyo_metro/api/train_location/info.rb, line 22
def initialize( id_urn , same_as , train_number , train_type , dc_date , valid , frequency ,
  railway_line , train_owner , railway_direction , delay , starting_station , terminal_station , from_station , to_station )
  @id_urn = id_urn
  @same_as = same_as
  @dc_date , @valid , @frequency = dc_date , valid , frequency
  @train_number , @train_type = train_number , train_type
  @railway_line , @train_owner , @railway_direction = railway_line , train_owner , railway_direction
  @delay = delay
  @starting_station , @terminal_station = starting_station , terminal_station
  @from_station , @to_station = from_station , to_station

  # set_train_name
end

Public Instance Methods

actual_delay() click to toggle source

@!group 遅延情報に関するメソッド (For users)

# File lib/tokyo_metro/api/train_location/info.rb, line 170
def actual_delay
  @delay
end
before_decorate() click to toggle source
# File lib/tokyo_metro/api/train_location/info.rb, line 119
def before_decorate
  ::TokyoMetro::Factory::BeforeDecorate::Api::TrainLocation::Info.new( self )
end
between_station?() click to toggle source

列車が駅間にいるか否かの真偽値(駅間にいる場合は true ) @return [Boolean]

# File lib/tokyo_metro/api/train_location/info.rb, line 196
def between_station?
  !( now_at_station? )
end
decorate( request , railway_line ) click to toggle source

@!endgroup

# File lib/tokyo_metro/api/train_location/info.rb, line 115
def decorate( request , railway_line )
  ::TokyoMetro::Factory::Decorate::Api::TrainLocation::Info.new( request , self , railway_line )
end
delay_instance() click to toggle source
# File lib/tokyo_metro/api/train_location/info.rb, line 200
def delay_instance
  ::TokyoMetro::Api::TrainLocation::Info::Delay.new( actual_delay )
end
delay_now?( delay_minimum_second ) click to toggle source

遅延しているか否かを判定するメソッド @param delay_minimum_second [Integer] 遅延とみなさない最大の秒数(遅延となる最小の秒数) @return [Boolean]

# File lib/tokyo_metro/api/train_location/info.rb, line 181
def delay_now?( delay_minimum_second )
  raise "Error" unless delay_minimum_second >= 0
  actual_delay > delay_minimum_second
end
now_at_station?() click to toggle source

列車が駅に停車中か否かの真偽値(駅に停車中の場合は true ) @return [Boolean]

# File lib/tokyo_metro/api/train_location/info.rb, line 190
def now_at_station?
  @to_station.nil?
end
on_schedule?() click to toggle source
# File lib/tokyo_metro/api/train_location/info.rb, line 174
def on_schedule?
  actual_delay == 0
end
to_h() click to toggle source

インスタンスの情報をハッシュにして返すメソッド @return [Hash]

# File lib/tokyo_metro/api/train_location/info.rb, line 141
def to_h
  h = Hash.new

  set_data_to_hash( h , "\@id" , @id_urn )
  set_data_to_hash( h , "owl:sameAs" , @same_as )

  set_data_to_hash( h , "dc:date" , @dc_date.to_s )
  set_data_to_hash( h , "dct:valid" , @valid.to_s )
  set_data_to_hash( h , "odpt:frequency" , @frequency )

  set_data_to_hash( h , "odpt:railway" , @railway_line )
  set_data_to_hash( h , "odpt:railDirection" , @railway_direction )
  set_data_to_hash( h , "odpt:trainNumber" , @train_number )
  set_data_to_hash( h , "odpt:trainType" , @train_type )
  set_data_to_hash( h , "odpt.trainOwner" , @train_owner )

  set_data_to_hash( h , "odpt:startingStation" , @starting_sta )
  set_data_to_hash( h , "odpt:terminalStation" , @terminal_sta )

  set_data_to_hash( h , "odpt:delay" , @delay )

  set_data_to_hash( h , "odpt:fromStation" , @from_station )
  set_data_to_hash( h , "odpt:toStation" , @to_station )

  h
end

Private Instance Methods

station_same_as__is_in?( *args ) click to toggle source

@!endgroup

# File lib/tokyo_metro/api/train_location/info.rb, line 221
def station_same_as__is_in?( *args )
  super( *args , compared: @from_station ) and @to_station.blank?
end