module TokyoMetro::App::Renderer::TravelTimeInfo::MetaClass::Common

Public Instance Methods

render() click to toggle source
# File lib/tokyo_metro/app/renderer/travel_time_info/meta_class/common.rb, line 3
  def render
    h.render inline: <<-HAML , type: :haml , locals: h_locals
%div{ id: railway_line.decorate.travel_time_table_id }
  %table{ class: [ :travel_time_info , :display_connecting_railway_line_name ] }
    - if additional_info_top.present?
      = additional_info_top.call
      - # = ::TravelTimeInfoDecorator.render_empty_row
    - #
    - rows.each do | row |
      = row.render
    - #
    - if additional_info_bottom.present?
      - # = ::TravelTimeInfoDecorator.render_empty_row
      = additional_info_bottom.call
    HAML
  end

Private Instance Methods

additional_info_bottom() click to toggle source
# File lib/tokyo_metro/app/renderer/travel_time_info/meta_class/common.rb, line 110
def additional_info_bottom
  nil
end
additional_info_left_between_stations() click to toggle source
# File lib/tokyo_metro/app/renderer/travel_time_info/meta_class/common.rb, line 118
def additional_info_left_between_stations
  nil
end
additional_info_left_on_station() click to toggle source
# File lib/tokyo_metro/app/renderer/travel_time_info/meta_class/common.rb, line 114
def additional_info_left_on_station
  nil
end
additional_info_next_to_railway_between_stations() click to toggle source
# File lib/tokyo_metro/app/renderer/travel_time_info/meta_class/common.rb, line 126
def additional_info_next_to_railway_between_stations
  nil
end
additional_info_next_to_railway_on_station() click to toggle source
# File lib/tokyo_metro/app/renderer/travel_time_info/meta_class/common.rb, line 122
def additional_info_next_to_railway_on_station
  nil
end
additional_info_right_between_stations() click to toggle source
# File lib/tokyo_metro/app/renderer/travel_time_info/meta_class/common.rb, line 134
def additional_info_right_between_stations
  nil
end
additional_info_right_on_station() click to toggle source
# File lib/tokyo_metro/app/renderer/travel_time_info/meta_class/common.rb, line 130
def additional_info_right_on_station
  nil
end
additional_info_top() click to toggle source
# File lib/tokyo_metro/app/renderer/travel_time_info/meta_class/common.rb, line 106
def additional_info_top
  nil
end
common_procedures_when_initialize() click to toggle source
# File lib/tokyo_metro/app/renderer/travel_time_info/meta_class/common.rb, line 22
def common_procedures_when_initialize
  set_number_of_left_columns
  set_number_of_columns_next_to_railway_line
  set_number_of_right_columns

  set_station_infos
  set_section_infos
  set_travel_time_infos

  set_renderer_of_rows
end
h_locals() click to toggle source
Calls superclass method
# File lib/tokyo_metro/app/renderer/travel_time_info/meta_class/common.rb, line 97
def h_locals
  super.merge({
    railway_line: railway_line_base ,
    rows: @rows ,
    additional_info_top: additional_info_top ,
    additional_info_bottom: additional_info_bottom
  })
end
renderers_of_section_infos() click to toggle source
# File lib/tokyo_metro/app/renderer/travel_time_info/meta_class/common.rb, line 86
def renderers_of_section_infos
  @section_infos.map { | info |
    necessary_time = @travel_time_infos.between( *info ).pluck( :necessary_time ).max
    ::TokyoMetro::App::Renderer::TravelTimeInfo::MetaClass::Row::Section.new(
      @request , info , necessary_time ,
      @left_columns , @columns_next_to_railway_line , @right_columns ,
      additional_info_left_between_stations , additional_info_next_to_railway_between_stations , additional_info_right_between_stations
    )
  }
end
renderers_of_station_infos() click to toggle source
# File lib/tokyo_metro/app/renderer/travel_time_info/meta_class/common.rb, line 76
def renderers_of_station_infos
  @station_infos.map { | info |
    ::TokyoMetro::App::Renderer::TravelTimeInfo::MetaClass::Row::Station.new(
      @request , info ,
      @left_columns , @columns_next_to_railway_line , @right_columns ,
      additional_info_left_on_station , additional_info_next_to_railway_on_station , additional_info_right_on_station
    )
  }
end
set_number_of_columns_next_to_railway_line() click to toggle source
# File lib/tokyo_metro/app/renderer/travel_time_info/meta_class/common.rb, line 38
def set_number_of_columns_next_to_railway_line
  @columns_next_to_railway_line = 0
end
set_number_of_left_columns() click to toggle source
# File lib/tokyo_metro/app/renderer/travel_time_info/meta_class/common.rb, line 34
def set_number_of_left_columns
  @left_columns = 1
end
set_number_of_right_columns() click to toggle source
# File lib/tokyo_metro/app/renderer/travel_time_info/meta_class/common.rb, line 42
def set_number_of_right_columns
  @right_columns = 1
end
set_renderer_of_rows() click to toggle source
# File lib/tokyo_metro/app/renderer/travel_time_info/meta_class/common.rb, line 58
def set_renderer_of_rows
  @rows = ::Array.new

  _renderers_of_station_infos = renderers_of_station_infos
  _renderers_of_section_infos = renderers_of_section_infos

  unless _renderers_of_station_infos.length == _renderers_of_section_infos.length + 1
    raise "Error"
  end

  _renderers_of_station_infos.each_with_index do | row_info , i |
    @rows << row_info
    unless i == _renderers_of_station_infos.length - 1
      @rows << _renderers_of_section_infos[i]
    end
  end
end
set_section_infos() click to toggle source
# File lib/tokyo_metro/app/renderer/travel_time_info/meta_class/common.rb, line 50
def set_section_infos
  @section_infos = @station_infos.cons(2)
end
set_station_infos() click to toggle source
# File lib/tokyo_metro/app/renderer/travel_time_info/meta_class/common.rb, line 46
def set_station_infos
  @station_infos = railway_line_base.station_infos.order( :index_in_railway_line )
end
set_travel_time_infos() click to toggle source
# File lib/tokyo_metro/app/renderer/travel_time_info/meta_class/common.rb, line 54
def set_travel_time_infos
  @travel_time_infos = railway_line_base.travel_time_infos.includes( :from_station_info , :to_station_info )
end