class TokyoMetro::Factory::Convert::Patch::Api::TrainTimetable::YurakuchoLine::InternalFactory::ValidStationTimesOnWeekdays::Info

Public Class Methods

get_by( invalid_train , valid_train ) click to toggle source
# File lib/tokyo_metro/factory/convert/patch/api/train_timetable/yurakucho_line/internal_factory/valid_station_times_on_weekdays/info.rb, line 35
def self.get_by( invalid_train , valid_train )
  self.new( invalid_train , valid_train ).to_a
end
new( invalid_train , valid_train ) click to toggle source

@params invalid_train 有楽町線 @params valid_train 副都心線

# File lib/tokyo_metro/factory/convert/patch/api/train_timetable/yurakucho_line/internal_factory/valid_station_times_on_weekdays/info.rb, line 7
def initialize( invalid_train , valid_train )
  @invalid_train = invalid_train
  @valid_train = valid_train
  set_direction
end

Public Instance Methods

to_a() click to toggle source
# File lib/tokyo_metro/factory/convert/patch/api/train_timetable/yurakucho_line/internal_factory/valid_station_times_on_weekdays/info.rb, line 13
def to_a
  ary = ::Array.new
  case @direction
  when :a
    departure_time_between_wakoshi_and_hikawadai = self.class.station_time_list_class.new( @invalid_train.weekdays[ 0..(-2) ] )
    departure_time_between_senkawa_and_shibuya = self.class.station_time_list_class.new( @valid_train.weekdays[ 1..(-1) ] )

    ary += ::TokyoMetro::Factory::Convert::Patch::Api::TrainTimetable::YurakuchoLine::InternalFactory::ConvertStationName::Info::StationTime::List.updated( departure_time_between_wakoshi_and_hikawadai )
    ary << station_time_of_kotake_mukaihara
    ary += departure_time_between_senkawa_and_shibuya

  when :b
    departure_time_between_shibuya_and_senkawa = self.class.station_time_list_class.new( @valid_train.weekdays[ 0..(-2) ] )
    departure_time_between_hikawadai_and_wakoshi = self.class.station_time_list_class.new( @invalid_train.weekdays[ 1..(-1) ] )

    ary += departure_time_between_shibuya_and_senkawa
    ary << station_time_of_kotake_mukaihara
    ary += ::TokyoMetro::Factory::Convert::Patch::Api::TrainTimetable::YurakuchoLine::InternalFactory::ConvertStationName::Info::StationTime::List.updated( departure_time_between_hikawadai_and_wakoshi )
  end
  self.class.station_time_list_class.new( ary )
end

Private Instance Methods

arrival_time_of_kotake_mukaihara() click to toggle source
# File lib/tokyo_metro/factory/convert/patch/api/train_timetable/yurakucho_line/internal_factory/valid_station_times_on_weekdays/info.rb, line 65
def arrival_time_of_kotake_mukaihara
  case @direction
  when :a
    @invalid_train.weekdays.last
  when :b
    @valid_train.weekdays.last
  end
end
departure_time_of_kotake_mukaihara() click to toggle source
# File lib/tokyo_metro/factory/convert/patch/api/train_timetable/yurakucho_line/internal_factory/valid_station_times_on_weekdays/info.rb, line 74
def departure_time_of_kotake_mukaihara
  case @direction
  when :a
    @valid_train.weekdays.first
  when :b
    @invalid_train.weekdays.first
  end
end
set_direction() click to toggle source
# File lib/tokyo_metro/factory/convert/patch/api/train_timetable/yurakucho_line/internal_factory/valid_station_times_on_weekdays/info.rb, line 41
def set_direction
  if @invalid_train.direction_a? and ( @invalid_train.terminating_on_fukutoshin_line? or @invalid_train.terminating_on_tokyu_toyoko_line? or @invalid_train.terminating_on_minatomirai_line? )
    @direction = :a
  elsif @invalid_train.direction_b? and ( @invalid_train.terminating_at_wakoshi? or @invalid_train.terminating_on_tobu_tojo_line? )
    @direction = :b
  else
    message_ary = ::Array.new
    message_ary << ""
    message_ary << "Error: The terminal station of the invalid train should be Wakoshi or"
    message_ary << "on Tobu Tojo Line, Fukutoshin Line, Tokyu Toyoko Line or Minatomirai Line."
    message_ary << "\"#{ @invalid_train.terminal_station }\" is not valid."
    raise message_ary.join( "\n" )
  end
end
station_time_of_kotake_mukaihara() click to toggle source
# File lib/tokyo_metro/factory/convert/patch/api/train_timetable/yurakucho_line/internal_factory/valid_station_times_on_weekdays/info.rb, line 56
def station_time_of_kotake_mukaihara
  station_name = ::TokyoMetro::Modules::Common::Dictionary::Station::StringInfo.kotake_mukaihara_on_fukutoshin_line

  arrival_t = arrival_time_of_kotake_mukaihara.arrival_time
  departure_t = departure_time_of_kotake_mukaihara.departure_time

  self.class.station_time_info_class.new( arrival_t , station_name , departure_t , station_name )
end