class TokyoMetro::App::Renderer::FareTable::ToEachRailwayLine::StationInfos::GroupInfo

Public Class Methods

new( request , normal_fare_group_id , station_info , normal_fare_groups ) click to toggle source
Calls superclass method
# File lib/tokyo_metro/app/renderer/fare_table/to_each_railway_line/station_infos/group_info.rb, line 3
def initialize( request , normal_fare_group_id , station_info , normal_fare_groups )
  super( request )

  @normal_fare_group = set_normal_fare_group( normal_fare_group_id , normal_fare_groups )
  @station_infos = [ station_info ]
end

Public Instance Methods

add( station_info ) click to toggle source
# File lib/tokyo_metro/app/renderer/fare_table/to_each_railway_line/station_infos/group_info.rb, line 10
def add( station_info )
  @station_infos << station_info
end
render() click to toggle source
# File lib/tokyo_metro/app/renderer/fare_table/to_each_railway_line/station_infos/group_info.rb, line 14
def render
  if @normal_fare_group.present?
    render_when_normal_fare_group_is_present
  else
    render_when_normal_fare_group_is_not_present
  end
end

Private Instance Methods

h_locals() click to toggle source
Calls superclass method
# File lib/tokyo_metro/app/renderer/fare_table/to_each_railway_line/station_infos/group_info.rb, line 24
def h_locals
  super.merge({
    normal_fare_group: @normal_fare_group ,
    station_infos: @station_infos ,
    number_of_station_infos: @station_infos.length
  })
end
render_when_normal_fare_group_is_not_present() click to toggle source
# File lib/tokyo_metro/app/renderer/fare_table/to_each_railway_line/station_infos/group_info.rb, line 59
  def render_when_normal_fare_group_is_not_present
    h.render inline: <<-HAML , type: :haml , locals: h_locals
- # normal_fare_group_id が定義されている場合
- # (運賃が設定されていない場合)
- station_infos.each.with_index(1) do | station_info , i |
  %tr<
    = station_info.decorate.render_in_fare_table
    - if i == 1
      %td{ colspan: number_of_station_infos , colspan: 4 , class: :no_fare }<>
        = " "
    HAML
  end
render_when_normal_fare_group_is_present() click to toggle source

normal_fare_group_id が定義されている場合

# File lib/tokyo_metro/app/renderer/fare_table/to_each_railway_line/station_infos/group_info.rb, line 41
  def render_when_normal_fare_group_is_present
    h.render inline: <<-HAML , type: :haml , locals: h_locals
- normal_fare_decorated = normal_fare_group.decorate
- station_infos.each.with_index(1) do | station_info , i |
  - case i
  - when number_of_station_infos
    %tr{ class: :last }<
      = station_info.decorate.render_in_fare_table
      - if i == 1
        = normal_fare_decorated.render_columns( number_of_station_infos )
  - else
    %tr<
      = station_info.decorate.render_in_fare_table
      - if i == 1
        = normal_fare_decorated.render_columns( number_of_station_infos )
    HAML
  end
set_normal_fare_group( normal_fare_group_id , normal_fare_groups ) click to toggle source
# File lib/tokyo_metro/app/renderer/fare_table/to_each_railway_line/station_infos/group_info.rb, line 32
def set_normal_fare_group( normal_fare_group_id , normal_fare_groups )
  if normal_fare_group_id == 0
    nil
  else
    normal_fare_groups.find( normal_fare_group_id )
  end
end