class TokyoMetro::App::Renderer::StationTimetable::Group

Public Class Methods

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

Public Instance Methods

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

Private Instance Methods

grouped_by_railway_line() click to toggle source
# File lib/tokyo_metro/app/renderer/station_timetable/group.rb, line 18
def grouped_by_railway_line
  h = ::Hash.new
  _railway_line_ids = railway_line_ids
  @station_timetables.each do | station_timetable |
    r_ids = station_timetable.station_timetable_fundamental_infos.pluck( :railway_line_id )
    r_ids.each do | railway_line_id |
      if h[ railway_line_id ].nil?
        h[ railway_line_id ] = ::Array.new
      end
      h[ railway_line_id ] << station_timetable
    end
  end
  h.sort_keys.map { | railway_line_id , station_timetables |
    ::TokyoMetro::App::Renderer::StationTimetable::Group::EachRailwayLine.new(
      request ,
      @station_info ,
      ::RailwayLine.find( railway_line_id ) ,
      station_timetables
    )
  }
end
h_locals() click to toggle source
Calls superclass method
# File lib/tokyo_metro/app/renderer/station_timetable/group.rb, line 46
def h_locals
  super.merge({
    grouped_by_railway_line: grouped_by_railway_line
  })
end
railway_line_ids() click to toggle source
# File lib/tokyo_metro/app/renderer/station_timetable/group.rb, line 40
def railway_line_ids
  @station_timetables.map { | station_timetable |
    station_timetable.railway_lines.pluck( :id )
  }.flatten.uniq.sort
end