class TokyoMetro::Factory::Seed::Api::StationTrainTime
列車時刻の情報をDBに流し込むためのクラス
Public Class Methods
check_chiyoda_line_info_in_db()
click to toggle source
# File lib/tokyo_metro/factory/seed/api/station_train_time.rb, line 34 def self.check_chiyoda_line_info_in_db ::TokyoMetro::Factory::Seed::Api::StationTrainTime::Checker.display_railway_line_info_in_db( :chiyoda ) end
check_number( *symbol_of_railway_lines )
click to toggle source
# File lib/tokyo_metro/factory/seed/api/station_train_time.rb, line 22 def self.check_number( *symbol_of_railway_lines ) ::TokyoMetro::Factory::Seed::Api::StationTrainTime::Checker.check_number( *symbol_of_railway_lines ) end
compare_chiyoda_line_info_in_db_and_api()
click to toggle source
# File lib/tokyo_metro/factory/seed/api/station_train_time.rb, line 38 def self.compare_chiyoda_line_info_in_db_and_api ary = ::Array.new ::TokyoMetro::Api.train_timetables.chiyoda.each do | train_timetable | train_timetable_instance_in_db = ::TrainTimetable.find_by_same_as( train_timetable.same_as ) if train_timetable_instance_in_db.nil? raise "Error: The train timetable of \"#{ train_timetable.same_as }\" does not exist in the db." end number_of_station_train_times_in_db = train_timetable_instance_in_db.station_train_times.length number_of_station_train_times_in_api = train_timetable.number_of_station_times unless number_of_station_train_times_in_db == number_of_station_train_times_in_api str_ary = [ "\"#{train_timetable.same_as}\"" , "(#{train_timetable.train_type})" , "---" , "in db: #{ number_of_station_train_times_in_db }" , "/" , "api : #{ number_of_station_train_times_in_api }" , diff_to_s( number_of_station_train_times_in_db , number_of_station_train_times_in_api ) ] ary << str_ary.join( " " ) end end puts ary return nil end
destroy!( *symbol_of_railway_lines )
click to toggle source
# File lib/tokyo_metro/factory/seed/api/station_train_time.rb, line 26 def self.destroy!( *symbol_of_railway_lines ) ::TokyoMetro::Factory::Seed::Api::StationTrainTime::Checker.destroy!( *symbol_of_railway_lines ) end
display_railway_line_info_in_db( *symbol_of_railway_lines )
click to toggle source
# File lib/tokyo_metro/factory/seed/api/station_train_time.rb, line 30 def self.display_railway_line_info_in_db( *symbol_of_railway_lines ) ::TokyoMetro::Factory::Seed::Api::StationTrainTime::Checker.display_railway_line_info_in_db( *symbol_of_railway_lines ) end
new( info )
click to toggle source
# File lib/tokyo_metro/factory/seed/api/station_train_time.rb, line 6 def initialize( info ) @info = info end
process( info )
click to toggle source
# File lib/tokyo_metro/factory/seed/api/station_train_time.rb, line 18 def self.process( info ) self.new( info ).seed end
Private Class Methods
diff_to_s( number_of_station_train_times_in_db , number_of_station_train_times_in_api )
click to toggle source
# File lib/tokyo_metro/factory/seed/api/station_train_time.rb, line 158 def diff_to_s( number_of_station_train_times_in_db , number_of_station_train_times_in_api ) diff = number_of_station_train_times_in_db - number_of_station_train_times_in_api if diff > 0 diff_to_s = "(+#{diff})" else diff_to_s = "(#{diff})" end end
Public Instance Methods
seed()
click to toggle source
# File lib/tokyo_metro/factory/seed/api/station_train_time.rb, line 10 def seed seed_main seed_optional_infos check_validity_after_finish_seeding return nil end
Private Instance Methods
check_validity_after_finish_seeding()
click to toggle source
# File lib/tokyo_metro/factory/seed/api/station_train_time.rb, line 82 def check_validity_after_finish_seeding check_validity_of_station_timetables check_validity_of_train_timetables end
check_validity_of_station_timetables()
click to toggle source
# File lib/tokyo_metro/factory/seed/api/station_train_time.rb, line 106 def check_validity_of_station_timetables ary = ::Array.new @info.station_timetables.each do | timetable | timetable.combination_of_timetable_types_and_operation_days.each do | timetable_in_a_day , operation_day_in_db | timetable_in_a_day.each do | train | unless train.seed_completed? message_ary = ::Array.new message_ary << "\[Error\]" message_ary << "\[#{ operation_day_in_db.name_en }\]".ljust(24) message_ary << timetable.same_as.ljust(48) message_ary << "#{ train.departure_time.hour }:#{ train.departure_time.min }".ljust(8) message_ary << train.terminal_station ary << message_ary.join( " " ) end end end end display_info_of_validity_check( ary , "Timetables" ) end
check_validity_of_train_timetables()
click to toggle source
# File lib/tokyo_metro/factory/seed/api/station_train_time.rb, line 126 def check_validity_of_train_timetables ary = ::Array.new @info.train_timetables.each do | train_timetable | train_timetable.valid_list.each do | station_time | unless station_time.seed_completed? message_ary = ::Array.new message_ary << "\[Error\]" message_ary << train_timetable.same_as.ljust(72) message_ary << station_time.station.ljust(48) message_ary << station_time.time.to_s ary << message_ary.join( " " ) end end end display_info_of_validity_check( ary , "Train Timetables" ) end
display_info_of_validity_check( ary , title )
click to toggle source
# File lib/tokyo_metro/factory/seed/api/station_train_time.rb, line 143 def display_info_of_validity_check( ary , title ) if ary.present? puts "● #{ title }" puts "" ary.each do | info | puts info end puts "" end end
seed_arrival_times_of_last_station_in_tokyo_metro()
click to toggle source
到着時刻をDBに流し込むメソッド (2) - 東京メトロ線内の最後の駅 @note {#seed_additional_arrival_times} を経由し、{TokyoMetro::Api::TrainTimetable::Info#seed_arrival_times_of_last_station_in_tokyo_metro} を実行する。
# File lib/tokyo_metro/factory/seed/api/station_train_time.rb, line 102 def seed_arrival_times_of_last_station_in_tokyo_metro @info.train_timetables.send( __method__ ) end
seed_arrival_times_of_romance_car()
click to toggle source
到着時刻をDBに流し込むメソッド (1) - 特急ロマンスカーの各停車駅(終着駅以外) @note {#seed_additional_arrival_times} を経由し、{TokyoMetro::Api::TrainTimetable::Info#seed_arrival_times_of_romance_car} を実行する。 @note 終着駅の処理は {#seed_arrival_times_of_last_station_in_tokyo_metro_for_each_train} で行う。
# File lib/tokyo_metro/factory/seed/api/station_train_time.rb, line 96 def seed_arrival_times_of_romance_car @info.train_timetables.send( __method__ ) end
seed_main()
click to toggle source
DB への流し込みを行うインスタンスメソッド @return [nil]
# File lib/tokyo_metro/factory/seed/api/station_train_time.rb, line 73 def seed_main seed_train_times_in_each_station end
seed_optional_infos()
click to toggle source
# File lib/tokyo_metro/factory/seed/api/station_train_time.rb, line 77 def seed_optional_infos seed_arrival_times_of_romance_car seed_arrival_times_of_last_station_in_tokyo_metro end
seed_train_times_in_each_station()
click to toggle source
@note 駅別・方面別の個別の時刻表の処理 @note {TokyoMetro::Api::StationTimetable::Info#seed_train_times} を呼び出す。
# File lib/tokyo_metro/factory/seed/api/station_train_time.rb, line 89 def seed_train_times_in_each_station @info.station_timetables.seed_train_times( @info.train_timetables ) end