class TokyoMetro::App::Renderer::StationFacility::Platform

Public Class Methods

make_list( request , station_facility_info ) click to toggle source
# File lib/tokyo_metro/app/renderer/station_facility/platform.rb, line 60
def self.make_list( request , station_facility_info )
  self.new( request , station_facility_info ).to_a
end
new( request , station_facility_info ) click to toggle source
Calls superclass method
# File lib/tokyo_metro/app/renderer/station_facility/platform.rb, line 3
def initialize( request , station_facility_info )
  super( request )
  @station_facility_info = station_facility_info
  @platform_infos_grouped_by_railway_line = platform_infos_grouped_by_railway_line
  @type_of_platform_infos = type_of_platform_infos
end

Public Instance Methods

to_a() click to toggle source
# File lib/tokyo_metro/app/renderer/station_facility/platform.rb, line 10
def to_a
  ary = ::Array.new
  case @type_of_platform_infos
  when :between_wakoshi_and_hikawadai
    # puts @type_of_platform_infos
    ary << ::TokyoMetro::App::Renderer::StationFacility::Platform::Info::BetweenWakoshiAndHikawadai::Whole.new(
      request ,
      @platform_infos_grouped_by_railway_line.values.first ,
      ::RailwayLine.where( id: railway_line_ids_of_platform_infos )
    )

  when :kotake_mukaihara
    # puts @type_of_platform_infos
    ary << ::TokyoMetro::App::Renderer::StationFacility::Platform::Info::KotakeMukaihara::Whole.new(
      request ,
      @platform_infos_grouped_by_railway_line.values.first ,
      ::RailwayLine.where( id: railway_line_ids_of_platform_infos )
    )

  when :meguro_and_shirokanedai
    # puts @type_of_platform_infos
    ary << ::TokyoMetro::App::Renderer::StationFacility::Platform::Info::MeguroAndShirokanedai::Whole.new(
      request ,
      @platform_infos_grouped_by_railway_line.values.first ,
      ::RailwayLine.where( same_as: [ "odpt.Railway:TokyoMetro.Namboku" , "odpt.Railway:Toei.Mita" ] ).order( :id )
    )

  when :shirokane_takanawa
    # puts @type_of_platform_infos
    ary << ::TokyoMetro::App::Renderer::StationFacility::Platform::Info::ShirokaneTakanawa::Whole.new(
      request ,
      @platform_infos_grouped_by_railway_line.values.first ,
      ::RailwayLine.where( same_as: [ "odpt.Railway:TokyoMetro.Namboku" , "odpt.Railway:Toei.Mita" ] ).order( :id )
    )

  when :normal
    # puts @type_of_platform_infos
    @platform_infos_grouped_by_railway_line.each do | railway_line_id , platform_infos |
      ary << ::TokyoMetro::App::Renderer::StationFacility::Platform::Info::Normal::Whole.new(
        request ,
        platform_infos ,
        ::RailwayLine.find( railway_line_id )
      )
    end

  end

  ::TokyoMetro::App::Renderer::StationFacility::Platform::List.new( @resuest , ary )
end

Private Instance Methods

at_these_stations?( *stations_in_system ) click to toggle source
# File lib/tokyo_metro/app/renderer/station_facility/platform.rb, line 149
def at_these_stations?( *stations_in_system )
  [ stations_in_system ].flatten.map { | station | "odpt.StationFacility:TokyoMetro.#{station}" }.include?( @station_facility_info.same_as )
end
between_meguro_and_shirokane_takanawa?() click to toggle source
# File lib/tokyo_metro/app/renderer/station_facility/platform.rb, line 136
def between_meguro_and_shirokane_takanawa?
  ary = ::TokyoMetro::Modules::Common::Dictionary::Station::StringList.namboku_and_toei_mita_line_common_stations_in_system
  at_these_stations?( ary )
end
between_wakoshi_and_hikawadai?() click to toggle source

@!group 駅の判定

# File lib/tokyo_metro/app/renderer/station_facility/platform.rb, line 131
def between_wakoshi_and_hikawadai?
  ary = ::TokyoMetro::Modules::Common::Dictionary::Station::StringList.between_wakoshi_and_hikawadai_in_system
  at_these_stations?( ary )
end
platform_infos_grouped_by_railway_line() click to toggle source
# File lib/tokyo_metro/app/renderer/station_facility/platform.rb, line 66
def platform_infos_grouped_by_railway_line
  @station_facility_info.platform_infos.includes(
    :railway_direction ,
    :station_facility_platform_info_barrier_free_facility_infos ,
    :station_facility_platform_info_transfer_infos ,
    :station_facility_platform_info_surrounding_areas ,
    :barrier_free_facility_infos ,
    :surrounding_areas
  ).group_by( &:railway_line_id )
end
platform_infos_of?( *ary ) click to toggle source
# File lib/tokyo_metro/app/renderer/station_facility/platform.rb, line 125
def platform_infos_of?( *ary )
  railway_line_ids_of_platform_infos.map { | railway_line_id | ::RailwayLine.find( railway_line_id ).same_as } == ary
end
platform_infos_of_namboku_and_toei_mita_line_at_meguro_or_shirokanedai?() click to toggle source
# File lib/tokyo_metro/app/renderer/station_facility/platform.rb, line 107
def platform_infos_of_namboku_and_toei_mita_line_at_meguro_or_shirokanedai?
  platform_infos_of_namboku_line? and ( at_meguro? or at_shirokanedai? )
end
platform_infos_of_namboku_and_toei_mita_line_at_shirokane_takanawa?() click to toggle source
# File lib/tokyo_metro/app/renderer/station_facility/platform.rb, line 111
def platform_infos_of_namboku_and_toei_mita_line_at_shirokane_takanawa?
  platform_infos_of_namboku_line? and at_shirokane_takanawa?
end
platform_infos_of_namboku_line?() click to toggle source
# File lib/tokyo_metro/app/renderer/station_facility/platform.rb, line 121
def platform_infos_of_namboku_line?
  platform_infos_of?( "odpt.Railway:TokyoMetro.Namboku" )
end
platform_infos_of_yurakucho_and_fukutoshin_line?() click to toggle source

@!group 路線の判定

# File lib/tokyo_metro/app/renderer/station_facility/platform.rb, line 117
def platform_infos_of_yurakucho_and_fukutoshin_line?
  platform_infos_of?( *( ::TokyoMetro::Modules::Common::Dictionary::RailwayLine::StringList.yurakucho_and_fukutoshin_line_same_as ) )
end
platform_infos_of_yurakucho_and_fukutoshin_line_at_kotake_mukaihara?() click to toggle source
# File lib/tokyo_metro/app/renderer/station_facility/platform.rb, line 103
def platform_infos_of_yurakucho_and_fukutoshin_line_at_kotake_mukaihara?
  platform_infos_of_yurakucho_and_fukutoshin_line? and at_kotake_mukaihara?
end
platform_infos_of_yurakucho_and_fukutoshin_line_between_wakoshi_and_hikawadai?() click to toggle source

@!group 路線と駅の判定

# File lib/tokyo_metro/app/renderer/station_facility/platform.rb, line 99
def platform_infos_of_yurakucho_and_fukutoshin_line_between_wakoshi_and_hikawadai?
  platform_infos_of_yurakucho_and_fukutoshin_line? and between_wakoshi_and_hikawadai?
end
railway_line_ids_of_platform_infos() click to toggle source
# File lib/tokyo_metro/app/renderer/station_facility/platform.rb, line 93
def railway_line_ids_of_platform_infos
  @platform_infos_grouped_by_railway_line.keys.sort
end
type_of_platform_infos() click to toggle source
# File lib/tokyo_metro/app/renderer/station_facility/platform.rb, line 77
def type_of_platform_infos
  if platform_infos_of_yurakucho_and_fukutoshin_line_between_wakoshi_and_hikawadai?
    :between_wakoshi_and_hikawadai
  elsif platform_infos_of_yurakucho_and_fukutoshin_line_at_kotake_mukaihara?
    :kotake_mukaihara

  elsif platform_infos_of_namboku_and_toei_mita_line_at_meguro_or_shirokanedai?
    :meguro_and_shirokanedai
  elsif platform_infos_of_namboku_and_toei_mita_line_at_shirokane_takanawa?
    :shirokane_takanawa

  else
    :normal
  end
end