class TokyoMetro::Api::TrainTimetable::Info

個別の列車時刻表のクラス

Attributes

car_composition[R]

車両数

dc_date[R]

データ生成時刻(ISO8601 日付時刻形式) - xsd:dateTime @return [DateTime] @example

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

休日の列車時刻 @return [TokyoMetro::Api::TrainTimetable::Info::StationTime::List] @note 出発時間と出発駅の組か、到着時間と到着駅の組のリストを格納

operator[R]

運行会社 - odpt:Operator @return [String]

previous_train[R]
railway_direction[R]

方面 - odpt:RailDirection @return [String]

railway_line[R]

路線 - odpt:Railway @return [String]

same_as[R]

固有識別子 - URL @return [String] @note 命名ルールは「odpt.TrainTimetable:TokyoMetro.路線名.列車番号(.曜日 ?)」

saturdays[R]

土曜日の列車時刻 @return [TokyoMetro::Api::TrainTimetable::Info::StationTime::List] @note 出発時間と出発駅の組か、到着時間と到着駅の組のリストを格納

starting_station[R]

列車の始発駅 - odpt:Station @return [String or nil] @note 他社線始発の場合のみ格納

terminal_station[R]

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

train_name[R]
train_number[R]

列車番号 @return [String]

train_owner[R]

車両の所属会社 - odpt:TrainOwner @return [String] @note 判明する場合のみ格納

train_type[R]
weekdays[R]

平日の列車時刻 @return [TokyoMetro::Api::TrainTimetable::Info::StationTime::List] @note 出発時間と出発駅の組か、到着時間と到着駅の組のリストを格納

Public Class Methods

new( id_urn , same_as , dc_date , train_number , railway_line , train_name , operator , train_type , railway_direction , starting_station , terminal_station , train_owner , weekdays , saturdays , holidays ) click to toggle source

Constructor

# File lib/tokyo_metro/api/train_timetable/info.rb, line 23
def initialize( id_urn , same_as , dc_date , train_number , railway_line , train_name , operator ,
train_type , railway_direction , starting_station , terminal_station , train_owner ,
weekdays , saturdays , holidays )
  @id_urn = id_urn
  @same_as = same_as
  @dc_date = dc_date
  @train_number = train_number
  @railway_line = railway_line
  @train_name = train_name
  @operator = operator
  @train_type = train_type
  @railway_direction = railway_direction

  @starting_station = starting_station
  @terminal_station = terminal_station
  @train_owner = train_owner

  @weekdays = weekdays
  @saturdays = saturdays
  @holidays = holidays
end

Public Instance Methods

go_to?( station_same_as )
Alias for: stops_at?
goes_to?( station_same_as )
Alias for: stops_at?
instance_in_db() click to toggle source
# File lib/tokyo_metro/api/train_timetable/info.rb, line 125
def instance_in_db
  ::TrainTimetable.find_by_same_as( @same_as )
end
number_of_station_times() click to toggle source
# File lib/tokyo_metro/api/train_timetable/info.rb, line 211
def number_of_station_times
  valid_list.length
end
set_car_number( car_composition ) click to toggle source

@!endgroup

# File lib/tokyo_metro/api/train_timetable/info.rb, line 121
def set_car_number( car_composition )
  @car_composition = car_composition
end
stations() click to toggle source
# File lib/tokyo_metro/api/train_timetable/info.rb, line 207
def stations
  valid_list.stations
end
stop_at?( station_same_as )
Alias for: stops_at?
stopping_stations() click to toggle source
# File lib/tokyo_metro/api/train_timetable/info.rb, line 203
def stopping_stations
  valid_list.stopping_stations
end
stops_at?( station_same_as ) click to toggle source

@!group 停車駅に関するメソッド

# File lib/tokyo_metro/api/train_timetable/info.rb, line 152
def stops_at?( station_same_as )
  valid_list.stops_at?( station_same_as )
end
Also aliased as: stop_at?, goes_to?, go_to?
stops_at_both?( *stations_same_as ) click to toggle source
# File lib/tokyo_metro/api/train_timetable/info.rb, line 160
def stops_at_both?( *stations_same_as )
  stations_same_as.flatten.all?( &proc_for_deciding_whether_stops_or_not )
end
stops_at_either?( *stations_same_as ) click to toggle source
# File lib/tokyo_metro/api/train_timetable/info.rb, line 164
def stops_at_either?( *stations_same_as )
  stations_same_as.flatten.any?( &proc_for_deciding_whether_stops_or_not )
end
time_of( *stations_same_as ) click to toggle source
# File lib/tokyo_metro/api/train_timetable/info.rb, line 178
def time_of( *stations_same_as )
  stations_same_as = stations_same_as.flatten
  ary_of_station_same_as = stations_same_as.select( &proc_for_deciding_whether_stops_or_not )

  case ary_of_station_same_as.length
  when 0
    nil
  when 1
    station_same_as = ary_of_station_same_as.first
    station_time_info_of( station_same_as ).time
  else
    error_msg_ary = ::Array.new
    error_msg_ary << "Error:"
    error_msg_ary += [
      "Train is same as ... #{ @same_as }" ,
      "Stations are same as ... #{ stations_same_as.to_s }" ,
      "Considered stations ... #{ ary_of_station_same_as.to_s }"
    ].map { | str | " " * 4 + str }

    error_msg_ary << " " * 4 + "Stations where this train stops ... "
    error_msg_ary += stations.map { | str | " " * 8 + str }
    raise error_msg_ary.join( "\n" )
  end
end
timetables() click to toggle source

@!group 列車時刻

# File lib/tokyo_metro/api/train_timetable/info.rb, line 131
def timetables
  [ @weekdays , @saturdays , @holidays ]
end
valid_list() click to toggle source

運行日の列車時刻 @return [::TokyoMetro::Api::TrainTimetable::Info::StationTime::List <::TokyoMetro::Api::TrainTimetable::Info::StationTime::Info>] @note 平日運行の場合は @weekdays の値を, 土休日運行の場合は @holidays の値を返す。

# File lib/tokyo_metro/api/train_timetable/info.rb, line 142
def valid_list
  if operated_on_weekdays?
    @weekdays
  elsif operated_on_saturdays_and_holidays?
    @holidays
  end
end
valid_timetables() click to toggle source
# File lib/tokyo_metro/api/train_timetable/info.rb, line 135
def valid_timetables
  timetables.select( &:present? )
end

Private Instance Methods

proc_for_deciding_whether_stops_or_not() click to toggle source
# File lib/tokyo_metro/api/train_timetable/info.rb, line 217
def proc_for_deciding_whether_stops_or_not
  ::Proc.new { | station_same_as | stops_at?( station_same_as ) }
end
seed_arrival_time_of_last_station_in_tokyo_metro() click to toggle source
# File lib/tokyo_metro/api/train_timetable/info.rb, line 227
def seed_arrival_time_of_last_station_in_tokyo_metro
  self.class.factory_for_seeding_each_arrival_time_of_last_station_in_tokyo_metro.process( self )
end
seed_arrival_times_of_romance_car() click to toggle source

@!group DBへの流し込みに関するメソッド

# File lib/tokyo_metro/api/train_timetable/info.rb, line 223
def seed_arrival_times_of_romance_car
  self.class.factory_for_seeding_each_arrival_time_of_romance_car.process( self )
end