class TokyoMetro::Api::TrainTimetable::Info
個別の列車時刻表のクラス
Attributes
車両数
データ生成時刻(ISO8601 日付時刻形式) - xsd:dateTime @return [DateTime] @example
2013–01–13T15:10:00+09:00
休日の列車時刻 @return [TokyoMetro::Api::TrainTimetable::Info::StationTime::List] @note 出発時間と出発駅の組か、到着時間と到着駅の組のリストを格納
運行会社 - odpt:Operator @return [String]
方面 - odpt:RailDirection @return [String]
路線 - odpt:Railway @return [String]
固有識別子 - URL @return [String] @note 命名ルールは「odpt.TrainTimetable:TokyoMetro.路線名.列車番号(.曜日 ?)」
土曜日の列車時刻 @return [TokyoMetro::Api::TrainTimetable::Info::StationTime::List] @note 出発時間と出発駅の組か、到着時間と到着駅の組のリストを格納
列車の始発駅 - odpt:Station @return [String or nil] @note 他社線始発の場合のみ格納
列車の終着駅 - odpt:Station @return [String]
列車番号 @return [String]
車両の所属会社 - odpt:TrainOwner @return [String] @note 判明する場合のみ格納
平日の列車時刻 @return [TokyoMetro::Api::TrainTimetable::Info::StationTime::List] @note 出発時間と出発駅の組か、到着時間と到着駅の組のリストを格納
Public Class Methods
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
# File lib/tokyo_metro/api/train_timetable/info.rb, line 125 def instance_in_db ::TrainTimetable.find_by_same_as( @same_as ) end
# File lib/tokyo_metro/api/train_timetable/info.rb, line 211 def number_of_station_times valid_list.length end
@!endgroup
# File lib/tokyo_metro/api/train_timetable/info.rb, line 121 def set_car_number( car_composition ) @car_composition = car_composition end
# File lib/tokyo_metro/api/train_timetable/info.rb, line 207 def stations valid_list.stations end
# File lib/tokyo_metro/api/train_timetable/info.rb, line 203 def stopping_stations valid_list.stopping_stations end
@!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
# 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
# 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
# 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
@!group 列車時刻
# File lib/tokyo_metro/api/train_timetable/info.rb, line 131 def timetables [ @weekdays , @saturdays , @holidays ] end
運行日の列車時刻 @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
# File lib/tokyo_metro/api/train_timetable/info.rb, line 135 def valid_timetables timetables.select( &:present? ) end
Private Instance Methods
# 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
# 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
@!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