Class: TokyoMetro::Api::TrainTimetable::Info

Overview

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

Defined Under Namespace

Modules: StationTime

列車時刻表のメタデータ (For developers) collapse

列車のデータ (For users) collapse

列車の各駅の発着時刻のデータ collapse

列車のデータ(追加) collapse

Attributes inherited from MetaClass::Fundamental::Info

#id_urn

列車時刻 collapse

停車駅に関するメソッド collapse

Instance Method Summary collapse

Methods included from Modules::Api::Info::Decision::TrainOperationDay

#operation_day_in_db

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

#direction_a?, #direction_b?

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

#bound_for?

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

#same_as?

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

#seed

Methods included from Modules::Api::Info::ToJson

#to_json

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_compositionObject (readonly)

車両数



114
115
116
# File 'lib/tokyo_metro/api/train_timetable/info.rb', line 114

def car_composition
  @car_composition
end

#dc_dateDateTime (readonly)

データ生成時刻(ISO8601 日付時刻形式) - xsd:dateTime

Examples:

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

Returns:

  • (DateTime)


56
57
58
# File 'lib/tokyo_metro/api/train_timetable/info.rb', line 56

def dc_date
  @dc_date
end

#following_trainObject (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

#holidaysTokyoMetro::Api::TrainTimetable::Info::StationTime::List (readonly)

Note:

出発時間と出発駅の組か、到着時間と到着駅の組のリストを格納

休日の列車時刻



109
110
111
# File 'lib/tokyo_metro/api/train_timetable/info.rb', line 109

def holidays
  @holidays
end

#operatorString (readonly)

運行会社 - odpt:Operator

Returns:

  • (String)


72
73
74
# File 'lib/tokyo_metro/api/train_timetable/info.rb', line 72

def operator
  @operator
end

#previous_trainObject (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_directionString (readonly)

方面 - odpt:RailDirection

Returns:

  • (String)


78
79
80
# File 'lib/tokyo_metro/api/train_timetable/info.rb', line 78

def railway_direction
  @railway_direction
end

#railway_lineString (readonly)

路線 - odpt:Railway

Returns:

  • (String)


66
67
68
# File 'lib/tokyo_metro/api/train_timetable/info.rb', line 66

def railway_line
  @railway_line
end

#same_asString (readonly)

Note:

命名ルールは「odpt.TrainTimetable:TokyoMetro.路線名.列車番号(.曜日 ?)」

固有識別子 - URL

Returns:

  • (String)


50
51
52
# File 'lib/tokyo_metro/api/train_timetable/info.rb', line 50

def same_as
  @same_as
end

#saturdaysTokyoMetro::Api::TrainTimetable::Info::StationTime::List (readonly)

Note:

出発時間と出発駅の組か、到着時間と到着駅の組のリストを格納

土曜日の列車時刻



104
105
106
# File 'lib/tokyo_metro/api/train_timetable/info.rb', line 104

def saturdays
  @saturdays
end

#starting_stationString or nil (readonly)

Note:

他社線始発の場合のみ格納

列車の始発駅 - odpt:Station

Returns:

  • (String or nil)


83
84
85
# File 'lib/tokyo_metro/api/train_timetable/info.rb', line 83

def starting_station
  @starting_station
end

#terminal_stationString (readonly)

列車の終着駅 - odpt:Station

Returns:

  • (String)


87
88
89
# File 'lib/tokyo_metro/api/train_timetable/info.rb', line 87

def terminal_station
  @terminal_station
end

#train_nameObject (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_numberString (readonly)

列車番号

Returns:

  • (String)


62
63
64
# File 'lib/tokyo_metro/api/train_timetable/info.rb', line 62

def train_number
  @train_number
end

#train_ownerString (readonly)

Note:

判明する場合のみ格納

車両の所属会社 - odpt:TrainOwner

Returns:

  • (String)


92
93
94
# File 'lib/tokyo_metro/api/train_timetable/info.rb', line 92

def train_owner
  @train_owner
end

#train_typeObject (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

#weekdaysTokyoMetro::Api::TrainTimetable::Info::StationTime::List (readonly)

Note:

出発時間と出発駅の組か、到着時間と到着駅の組のリストを格納

平日の列車時刻



99
100
101
# File 'lib/tokyo_metro/api/train_timetable/info.rb', line 99

def weekdays
  @weekdays
end

Instance Method Details

#instance_in_dbObject



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_timesObject



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

#stationsObject



207
208
209
# File 'lib/tokyo_metro/api/train_timetable/info.rb', line 207

def stations
  valid_list.stations
end

#stopping_stationsObject



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?

Returns:

  • (Boolean)


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

Returns:

  • (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

Returns:

  • (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

#timetablesObject



131
132
133
# File 'lib/tokyo_metro/api/train_timetable/info.rb', line 131

def timetables
  [ @weekdays , @saturdays , @holidays ]
end

#valid_list::TokyoMetro::Api::TrainTimetable::Info::StationTime::List <::TokyoMetro::Api::TrainTimetable::Info::StationTime::Info>

Note:

平日運行の場合は @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_timetablesObject



135
136
137
# File 'lib/tokyo_metro/api/train_timetable/info.rb', line 135

def valid_timetables
  timetables.select( &:present? )
end