class TokyoMetro::Factory::Seed::Api::StationTrainTime::TrainInStationTimetable

Attributes

operation_day_in_db[R]
station_timetable_info[R]

@return [::TokyoMetro::Factory::Seed::Api::StationTrainTime::TrainInStationTimetable::StationTimetableInfo]

train[R]

@return [::TokyoMetro::Api::StationTimetable::Info::TrainTime::Info]

train_timetables[R]

Public Class Methods

find_and_get_train_timetable_infos_of_this_train( train , station_timetable_info , operation_day_in_db , train_timetables ) click to toggle source
# File lib/tokyo_metro/factory/seed/api/station_train_time/train_in_station_timetable.rb, line 26
def self.find_and_get_train_timetable_infos_of_this_train( train , station_timetable_info , operation_day_in_db , train_timetables )
  self.new( train , station_timetable_info , operation_day_in_db , train_timetables ).find_and_get_train_timetable_infos_of_this_train
end
new( train , station_timetable_info , operation_day_in_db , train_timetables ) click to toggle source

Constructor @param station_timetable_info [::TokyoMetro::Factory::Seed::Api::StationTrainTime::TrainInStationTimetable::StationTimetableInfo] @param train [::TokyoMetro::Api::StationTimetable::Info::TrainTime::Info]

# File lib/tokyo_metro/factory/seed/api/station_train_time/train_in_station_timetable.rb, line 6
def initialize( train , station_timetable_info , operation_day_in_db , train_timetables )
  @train = train
  @station_timetable_info = station_timetable_info

  class << @train
    include ::TokyoMetro::Refinement::Api::StationTimetable::Info::TrainTime::Info::TerminalStationsSameAs
  end

  @operation_day_in_db = operation_day_in_db
  @train_timetables = train_timetables
end

Public Instance Methods

find_and_get_train_timetable_infos_of_this_train() click to toggle source
# File lib/tokyo_metro/factory/seed/api/station_train_time/train_in_station_timetable.rb, line 30
def find_and_get_train_timetable_infos_of_this_train
  @train_timetable_in_api = train_timetable_in_api
  @instance_of_actual_departure_station_info_in_db = instance_of_actual_departure_station_info_in_db

  h = ::Hash.new

  [ :station_timetable_in_db , :train_timetable_in_db , :station_set_in_db ].each do | key_name |
    h[ key_name ] = self.send( key_name )
  end

  h.merge( @train_timetable_in_api.station_time_info_and_index_of( @instance_of_actual_departure_station_info_in_db.same_as ) )
end

Private Instance Methods

error_msg_of_finding_train_timetable_in_api() click to toggle source
# File lib/tokyo_metro/factory/seed/api/station_train_time/train_in_station_timetable.rb, line 78
def error_msg_of_finding_train_timetable_in_api
  error_message_ary = ::Array.new
  error_message_ary << "\n"
  error_message_ary << "Error: The train timetable including these informations does not exist."
  [
    [ "Depart from" , stations_to_s + " (#{ railway_lines_to_s })" ] ,
    [ "Departure time" , @train.departure_time_array.join( ":" ) ] ,
    [ "Terminal station" , terminal_stations_to_s ] ,
    [ "Operation day" , @operation_day_in_db.name_en ]
  ].each do | title , info |
    error_message_ary << ( title.ljust(24) + " ... " + info )
  end
  error_message_ary.join( "\n" )
end
instance_of_actual_departure_station_info_in_db() click to toggle source
# File lib/tokyo_metro/factory/seed/api/station_train_time/train_in_station_timetable.rb, line 97
def instance_of_actual_departure_station_info_in_db
  @station_timetable_info.instance_of_actual_station_in_api( @train_timetable_in_api )
end
station_set_in_db() click to toggle source
# File lib/tokyo_metro/factory/seed/api/station_train_time/train_in_station_timetable.rb, line 101
def station_set_in_db
  { departure: @instance_of_actual_departure_station_info_in_db }
end
terminal_stations_same_as() click to toggle source

@note {::TokyoMetro::Refinement::Api::StationTimetable::Info::TrainTime::Info::TerminalStationsSameAs.terminal_stations_same_as} を呼び出す。

# File lib/tokyo_metro/factory/seed/api/station_train_time/train_in_station_timetable.rb, line 70
def terminal_stations_same_as
  @train.send( :terminal_stations_same_as , railway_lines )
end
terminal_stations_to_s() click to toggle source
# File lib/tokyo_metro/factory/seed/api/station_train_time/train_in_station_timetable.rb, line 74
def terminal_stations_to_s
  terminal_stations_same_as.join( " / " )
end
train_timetable_in_api() click to toggle source
# File lib/tokyo_metro/factory/seed/api/station_train_time/train_in_station_timetable.rb, line 45
def train_timetable_in_api
  t = @train_timetables.find { | train_timetable |
    class << train_timetable
      include ::TokyoMetro::Refinement::Api::TrainTimetable::Info::Match
    end
    train_timetable.matches_station_timetable?( @train , @station_timetable_info , @operation_day_in_db )
  }

  unless t.present?
    raise error_msg_of_finding_train_timetable_in_api
  end

  t
end
train_timetable_in_db() click to toggle source
# File lib/tokyo_metro/factory/seed/api/station_train_time/train_in_station_timetable.rb, line 93
def train_timetable_in_db
  ::TrainTimetable.find_by_same_as( @train_timetable_in_api.same_as )
end