module TokyoMetro::App::Renderer::TravelTimeInfo::RailwayLine
Public Class Methods
instance_of( request , railway_lines )
click to toggle source
# File lib/tokyo_metro/app/renderer/travel_time_info/railway_line.rb, line 3 def self.instance_of( request , railway_lines ) railway_lines = [ railway_lines ].flatten case railway_lines.length when 1 railway_line = railway_lines.first class_name_of_instance_for_one_railway_line( railway_line ).new( request , railway_line ) when 2 class_name_of_instance_for_multiple_railway_lines( railway_lines ).new( request , railway_lines ) else raise "Error: \"#{ railway_lines.pluck( :same_as ).to_s }\" is not valid." end end
Private Class Methods
class_name_of_instance_for_multiple_railway_lines( railway_lines )
click to toggle source
# File lib/tokyo_metro/app/renderer/travel_time_info/railway_line.rb, line 41 def class_name_of_instance_for_multiple_railway_lines( railway_lines ) railway_lines_same_as = railway_lines.to_a.map( &:same_as ).sort case railway_lines_same_as when [ "odpt.Railway:TokyoMetro.Marunouchi" , "odpt.Railway:TokyoMetro.MarunouchiBranch" ].sort ::TokyoMetro::App::Renderer::TravelTimeInfo::RailwayLine::MarunouchiLine when [ "odpt.Railway:TokyoMetro.Chiyoda" , "odpt.Railway:TokyoMetro.ChiyodaBranch" ].sort ::TokyoMetro::App::Renderer::TravelTimeInfo::RailwayLine::ChiyodaLine when [ "odpt.Railway:TokyoMetro.Yurakucho" , "odpt.Railway:TokyoMetro.Fukutoshin" ].sort ::TokyoMetro::App::Renderer::TravelTimeInfo::RailwayLine::YurakuchoAndFukutoshinLine else raise "Error: \"#{ railway_lines_same_as.to_s }\" is not valid." end end
class_name_of_instance_for_one_railway_line( railway_line )
click to toggle source
# File lib/tokyo_metro/app/renderer/travel_time_info/railway_line.rb, line 20 def class_name_of_instance_for_one_railway_line( railway_line ) case railway_line.same_as when "odpt.Railway:TokyoMetro.Ginza" ::TokyoMetro::App::Renderer::TravelTimeInfo::RailwayLine::GinzaLine when "odpt.Railway:TokyoMetro.Hibiya" ::TokyoMetro::App::Renderer::TravelTimeInfo::RailwayLine::HibiyaLine when "odpt.Railway:TokyoMetro.Tozai" ::TokyoMetro::App::Renderer::TravelTimeInfo::RailwayLine::TozaiLine when "odpt.Railway:TokyoMetro.Yurakucho" ::TokyoMetro::App::Renderer::TravelTimeInfo::RailwayLine::YurakuchoLine when "odpt.Railway:TokyoMetro.Hanzomon" ::TokyoMetro::App::Renderer::TravelTimeInfo::RailwayLine::HanzomonLine when "odpt.Railway:TokyoMetro.Namboku" ::TokyoMetro::App::Renderer::TravelTimeInfo::RailwayLine::NambokuLine when "odpt.Railway:TokyoMetro.Fukutoshin" ::TokyoMetro::App::Renderer::TravelTimeInfo::RailwayLine::FukutoshinLine else raise "Error: \"#{ railway_line.same_as }\" is not valid." end end