Class: TokyoMetro::Api::TrainTimetable::Info
- Inherits:
-
MetaClass::NotRealTime::Info
- Object
- MetaClass::Fundamental::Info
- MetaClass::NotRealTime::Info
- TokyoMetro::Api::TrainTimetable::Info
- Includes:
- ClassNameLibrary::Api::TrainTimetable, Modules::Api::Info::Decision::OperatedSection, Modules::Api::Info::Decision::RailwayLine, Modules::Api::Info::Decision::StartingStation, Modules::Api::Info::Decision::TerminalStation, Modules::Api::Info::Decision::TrainDirection, Modules::Api::Info::Decision::TrainOperationDay, Modules::Api::Info::Decision::TrainType, Modules::Common::Info::Decision::CompareBase, Modules::Common::Info::Decision::RomanceCar, Modules::Common::Info::Decision::SameAs, Modules::Common::Info::Decision::ToeiMitaLine, Modules::Common::ToFactory::Seed::Info
- Defined in:
- lib/tokyo_metro/api/train_timetable/info.rb
Overview
個別の列車時刻表のクラス
Defined Under Namespace
Modules: StationTime
列車時刻表のメタデータ (For developers) collapse
-
#dc_date ⇒ DateTime
readonly
データ生成時刻(ISO8601 日付時刻形式) - xsd:dateTime.
-
#same_as ⇒ String
readonly
固有識別子 - URL.
列車のデータ (For users) collapse
-
#operator ⇒ String
readonly
運行会社 - odpt:Operator.
-
#railway_direction ⇒ String
readonly
方面 - odpt:RailDirection.
-
#railway_line ⇒ String
readonly
路線 - odpt:Railway.
-
#starting_station ⇒ String or nil
readonly
列車の始発駅 - odpt:Station.
-
#terminal_station ⇒ String
readonly
列車の終着駅 - odpt:Station.
-
#train_name ⇒ Object
readonly
Returns the value of attribute train_name.
-
#train_number ⇒ String
readonly
列車番号.
-
#train_owner ⇒ String
readonly
車両の所属会社 - odpt:TrainOwner.
-
#train_type ⇒ Object
readonly
Returns the value of attribute train_type.
列車の各駅の発着時刻のデータ collapse
-
#holidays ⇒ TokyoMetro::Api::TrainTimetable::Info::StationTime::List
readonly
休日の列車時刻.
-
#saturdays ⇒ TokyoMetro::Api::TrainTimetable::Info::StationTime::List
readonly
土曜日の列車時刻.
-
#weekdays ⇒ TokyoMetro::Api::TrainTimetable::Info::StationTime::List
readonly
平日の列車時刻.
列車のデータ(追加) collapse
-
#car_composition ⇒ Object
readonly
車両数.
-
#following_train ⇒ Object
readonly
Returns the value of attribute following_train.
-
#previous_train ⇒ Object
readonly
Returns the value of attribute previous_train.
Attributes inherited from MetaClass::Fundamental::Info
列車時刻 collapse
- #timetables ⇒ Object
-
#valid_list ⇒ ::TokyoMetro::Api::TrainTimetable::Info::StationTime::List <::TokyoMetro::Api::TrainTimetable::Info::StationTime::Info>
運行日の列車時刻.
- #valid_timetables ⇒ Object
停車駅に関するメソッド collapse
- #stops_at?(station_same_as) ⇒ Boolean (also: #stop_at?, #goes_to?, #go_to?)
- #stops_at_both?(*stations_same_as) ⇒ Boolean
- #stops_at_either?(*stations_same_as) ⇒ Boolean
Instance Method Summary collapse
-
#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) ⇒ Info
constructor
Constructor.
- #instance_in_db ⇒ Object
- #number_of_station_times ⇒ Object
- #set_car_number(car_composition) ⇒ Object
- #stations ⇒ Object
- #stopping_stations ⇒ Object
- #time_of(*stations_same_as) ⇒ Object
Methods included from Modules::Api::Info::Decision::TrainOperationDay
Methods included from Modules::Common::Info::Decision::TrainOperationDay
#operated_on?, #operated_on_saturdays_and_holidays?, #operated_on_weekdays?
Methods included from Modules::Api::Info::Decision::TrainDirection
Methods included from Modules::Api::Info::Decision::OperatedSection
#marunouchi_main_and_branch_line?, #operated_only_on_chiyoda_branch_line?, #operated_only_on_chiyoda_branch_line_including_invalid?, #operated_only_on_marunouchi_branch_line?, #operated_only_on_marunouchi_branch_line_including_invalid?
Methods included from Modules::Common::Info::Decision::TrainType
#express?, #limited_express_or_romance_car?, #local?, #romance_car_specific_train?
Methods included from Modules::Common::Info::Decision::RailwayLine
#on_marunouchi_line_including_branch?, #on_namboku_or_toei_mita_line?, #on_toei_mita_line?, #on_yurakucho_or_fukutoshin_line?
Methods included from Modules::Api::Info::Decision::TerminalStation
Methods included from Modules::Common::Info::Decision::TerminalStation
#bound_for?, #terminating_on_marunouchi_branch_line_including_invalid?, #terminating_on_tokyu_toyoko_or_at_motomachi_chukagai?, #terminating_on_tokyu_toyoko_or_minatomirai_line?
Methods included from Modules::Common::Info::Decision::StartingStation
#starting_on_marunouchi_branch_line_including_invalid?, #starting_on_tokyu_toyoko_or_at_motomachi_chukagai?, #starting_on_tokyu_toyoko_or_minatomirai_line?
Methods included from Modules::Common::Info::Decision::SameAs
Methods included from Modules::Common::Info::Decision::ToeiMitaLine
#toei_mita_line_train_including_on_namboku_line?
Methods included from Modules::Common::Info::Decision::RomanceCar
#romance_car_on_chiyoda_line?, #romance_car_specific_train_on_chiyoda_line?
Methods included from Modules::Common::ToFactory::Seed::Info
Methods included from Modules::Api::Info::ToJson
Constructor Details
#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) ⇒ Info
Constructor
23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 |
# 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 |
Instance Attribute Details
#car_composition ⇒ Object (readonly)
車両数
114 115 116 |
# File 'lib/tokyo_metro/api/train_timetable/info.rb', line 114 def car_composition @car_composition end |
#dc_date ⇒ DateTime (readonly)
データ生成時刻(ISO8601 日付時刻形式) - xsd:dateTime
56 57 58 |
# File 'lib/tokyo_metro/api/train_timetable/info.rb', line 56 def dc_date @dc_date end |
#following_train ⇒ Object (readonly)
Returns the value of attribute following_train.
117 118 119 |
# File 'lib/tokyo_metro/api/train_timetable/info.rb', line 117 def following_train @following_train end |
#holidays ⇒ TokyoMetro::Api::TrainTimetable::Info::StationTime::List (readonly)
出発時間と出発駅の組か、到着時間と到着駅の組のリストを格納
休日の列車時刻
109 110 111 |
# File 'lib/tokyo_metro/api/train_timetable/info.rb', line 109 def holidays @holidays end |
#operator ⇒ String (readonly)
運行会社 - odpt:Operator
72 73 74 |
# File 'lib/tokyo_metro/api/train_timetable/info.rb', line 72 def operator @operator end |
#previous_train ⇒ Object (readonly)
Returns the value of attribute previous_train.
116 117 118 |
# File 'lib/tokyo_metro/api/train_timetable/info.rb', line 116 def previous_train @previous_train end |
#railway_direction ⇒ String (readonly)
方面 - odpt:RailDirection
78 79 80 |
# File 'lib/tokyo_metro/api/train_timetable/info.rb', line 78 def railway_direction @railway_direction end |
#railway_line ⇒ String (readonly)
路線 - odpt:Railway
66 67 68 |
# File 'lib/tokyo_metro/api/train_timetable/info.rb', line 66 def railway_line @railway_line end |
#same_as ⇒ String (readonly)
命名ルールは「odpt.TrainTimetable:TokyoMetro.路線名.列車番号(.曜日 ?)」
固有識別子 - URL
50 51 52 |
# File 'lib/tokyo_metro/api/train_timetable/info.rb', line 50 def same_as @same_as end |
#saturdays ⇒ TokyoMetro::Api::TrainTimetable::Info::StationTime::List (readonly)
出発時間と出発駅の組か、到着時間と到着駅の組のリストを格納
土曜日の列車時刻
104 105 106 |
# File 'lib/tokyo_metro/api/train_timetable/info.rb', line 104 def saturdays @saturdays end |
#starting_station ⇒ String or nil (readonly)
他社線始発の場合のみ格納
列車の始発駅 - odpt:Station
83 84 85 |
# File 'lib/tokyo_metro/api/train_timetable/info.rb', line 83 def starting_station @starting_station end |
#terminal_station ⇒ String (readonly)
列車の終着駅 - odpt:Station
87 88 89 |
# File 'lib/tokyo_metro/api/train_timetable/info.rb', line 87 def terminal_station @terminal_station end |
#train_name ⇒ Object (readonly)
Returns the value of attribute train_name.
68 69 70 |
# File 'lib/tokyo_metro/api/train_timetable/info.rb', line 68 def train_name @train_name end |
#train_number ⇒ String (readonly)
列車番号
62 63 64 |
# File 'lib/tokyo_metro/api/train_timetable/info.rb', line 62 def train_number @train_number end |
#train_owner ⇒ String (readonly)
判明する場合のみ格納
車両の所属会社 - odpt:TrainOwner
92 93 94 |
# File 'lib/tokyo_metro/api/train_timetable/info.rb', line 92 def train_owner @train_owner end |
#train_type ⇒ Object (readonly)
Returns the value of attribute train_type.
74 75 76 |
# File 'lib/tokyo_metro/api/train_timetable/info.rb', line 74 def train_type @train_type end |
#weekdays ⇒ TokyoMetro::Api::TrainTimetable::Info::StationTime::List (readonly)
出発時間と出発駅の組か、到着時間と到着駅の組のリストを格納
平日の列車時刻
99 100 101 |
# File 'lib/tokyo_metro/api/train_timetable/info.rb', line 99 def weekdays @weekdays end |
Instance Method Details
#instance_in_db ⇒ Object
125 126 127 |
# 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 ⇒ Object
211 212 213 |
# 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) ⇒ Object
121 122 123 |
# File 'lib/tokyo_metro/api/train_timetable/info.rb', line 121 def set_car_number( car_composition ) @car_composition = car_composition end |
#stations ⇒ Object
207 208 209 |
# File 'lib/tokyo_metro/api/train_timetable/info.rb', line 207 def stations valid_list.stations end |
#stopping_stations ⇒ Object
203 204 205 |
# File 'lib/tokyo_metro/api/train_timetable/info.rb', line 203 def stopping_stations valid_list.stopping_stations end |
#stops_at?(station_same_as) ⇒ Boolean Also known as: stop_at?, goes_to?, go_to?
152 153 154 |
# 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 |
#stops_at_both?(*stations_same_as) ⇒ Boolean
160 161 162 |
# 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) ⇒ Boolean
164 165 166 |
# 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) ⇒ Object
178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 |
# 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 ⇒ Object
131 132 133 |
# File 'lib/tokyo_metro/api/train_timetable/info.rb', line 131 def [ @weekdays , @saturdays , @holidays ] end |
#valid_list ⇒ ::TokyoMetro::Api::TrainTimetable::Info::StationTime::List <::TokyoMetro::Api::TrainTimetable::Info::StationTime::Info>
平日運行の場合は @weekdays の値を, 土休日運行の場合は @holidays の値を返す。
運行日の列車時刻
142 143 144 145 146 147 148 |
# 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 ⇒ Object
135 136 137 |
# File 'lib/tokyo_metro/api/train_timetable/info.rb', line 135 def .select( &:present? ) end |