class TokyoMetro::App::Renderer::StationTimetable::Group::EachRailwayLine::EachRailwayDirection

Public Class Methods

new( request , station_info , railway_line , railway_direction , station_timetables ) click to toggle source
Calls superclass method
# File lib/tokyo_metro/app/renderer/station_timetable/group/each_railway_line/each_direction.rb, line 3
def initialize( request , station_info , railway_line , railway_direction , station_timetables )
  super( request )
  @station_info = station_info
  @railway_line = railway_line
  @railway_direction = railway_direction
  @station_timetables = station_timetables
end

Public Instance Methods

render() click to toggle source
# File lib/tokyo_metro/app/renderer/station_timetable/group/each_railway_line/each_direction.rb, line 11
  def render
    h.render inline: <<-HAML , type: :haml , locals: h_locals
- grouped_by_operation_day.each do | station_timetables_of_each_operation_day |
  = station_timetables_of_each_operation_day.render
    HAML
  end

Private Instance Methods

grouped_by_operation_day() click to toggle source
# File lib/tokyo_metro/app/renderer/station_timetable/group/each_railway_line/each_direction.rb, line 37
def grouped_by_operation_day
  h = ::Hash.new
  _operation_day_ids = operation_day_ids
  station_train_times.each do | station_train_time |
    operation_day_id = station_train_time.operation_day.id
    if h[ operation_day_id ].nil?
      h[ operation_day_id ] = ::Array.new
    end
    h[ operation_day_id ] << station_train_time
  end

  h.sort_keys.map { | operation_day_id , _station_train_times |
    ::TokyoMetro::App::Renderer::StationTimetable::Group::EachRailwayLine::EachRailwayDirection::EachOperationDay.new(
      request ,
      @station_info ,
      @railway_line ,
      @railway_direction ,
      ::OperationDay.find( operation_day_id ) ,
      _station_train_times
    )
  }
end
h_locals() click to toggle source
Calls superclass method
# File lib/tokyo_metro/app/renderer/station_timetable/group/each_railway_line/each_direction.rb, line 66
def h_locals
  super.merge({
    grouped_by_operation_day: grouped_by_operation_day
  })
end
operation_day_ids() click to toggle source
# File lib/tokyo_metro/app/renderer/station_timetable/group/each_railway_line/each_direction.rb, line 60
def operation_day_ids
  station_train_times.map { | station_train_time |
    station_train_time.operation_day.id
  }.flatten.uniq.sort
end
station_timetable_of_a_direction() click to toggle source

方面別の時刻表(1つ)

# File lib/tokyo_metro/app/renderer/station_timetable/group/each_railway_line/each_direction.rb, line 21
def station_timetable_of_a_direction
  # 【注意】@station_timetables は配列
  unless @station_timetables.length == 1
    raise "Error"
  end
  @station_timetables.first
end
station_train_times() click to toggle source

方面ごとの各列車の時刻を取得

# File lib/tokyo_metro/app/renderer/station_timetable/group/each_railway_line/each_direction.rb, line 30
def station_train_times
  station_timetable_of_a_direction.station_train_times.includes(
    :train_timetable ,
    train_timetable: [ :terminal_station_info , :train_type , :operation_day ]
  )
end