Class: TokyoMetro::App::Renderer::StationTimetable::Group::EachRailwayLine::EachRailwayDirection::EachOperationDay::StationTrainTimes
- Inherits:
-
Factory::Decorate::MetaClass
- Object
- RailsDecorateFactory
- Factory::Decorate::MetaClass
- TokyoMetro::App::Renderer::StationTimetable::Group::EachRailwayLine::EachRailwayDirection::EachOperationDay::StationTrainTimes
- Defined in:
- lib/tokyo_metro/app/renderer/station_timetable/group/each_railway_line/each_direction/each_operation_day/station_train_times.rb
Instance Attribute Summary collapse
-
#car_compositions ⇒ Object
readonly
Returns the value of attribute car_compositions.
-
#grouped_by_hour ⇒ Object
readonly
Returns the value of attribute grouped_by_hour.
-
#major_terminal_station_info_id ⇒ Object
readonly
Returns the value of attribute major_terminal_station_info_id.
-
#terminal_station_infos ⇒ Object
readonly
Returns the value of attribute terminal_station_infos.
-
#train_type_infos ⇒ Object
readonly
Returns the value of attribute train_type_infos.
Instance Method Summary collapse
- #has_one_terminal_station_info? ⇒ Boolean
- #has_one_train_type_info? ⇒ Boolean
- #hours ⇒ Object
-
#initialize(station_train_times) ⇒ StationTrainTimes
constructor
A new instance of StationTrainTimes.
- #render_body ⇒ Object
- #render_message_in_header ⇒ Object
Constructor Details
#initialize(station_train_times) ⇒ StationTrainTimes
Returns a new instance of StationTrainTimes.
3 4 5 6 7 8 9 10 |
# File 'lib/tokyo_metro/app/renderer/station_timetable/group/each_railway_line/each_direction/each_operation_day/station_train_times.rb', line 3 def initialize( station_train_times ) @grouped_by_hour = station_train_times.group_by( &:hour_in_station_timetable ) @terminal_station_infos = ::Station::Info.where( id: terminal_station_info_ids ) @train_type_infos = ::TrainType.includes( :train_type_in_api ).where( id: train_type_info_ids ) @car_compositions = ids_in_station_train_times( :car_composition ).select( &:present? ) @major_terminal_station_info_id = get_major_terminal_station_info_id end |
Instance Attribute Details
#car_compositions ⇒ Object (readonly)
Returns the value of attribute car_compositions.
15 16 17 |
# File 'lib/tokyo_metro/app/renderer/station_timetable/group/each_railway_line/each_direction/each_operation_day/station_train_times.rb', line 15 def car_compositions @car_compositions end |
#grouped_by_hour ⇒ Object (readonly)
Returns the value of attribute grouped_by_hour.
12 13 14 |
# File 'lib/tokyo_metro/app/renderer/station_timetable/group/each_railway_line/each_direction/each_operation_day/station_train_times.rb', line 12 def grouped_by_hour @grouped_by_hour end |
#major_terminal_station_info_id ⇒ Object (readonly)
Returns the value of attribute major_terminal_station_info_id.
16 17 18 |
# File 'lib/tokyo_metro/app/renderer/station_timetable/group/each_railway_line/each_direction/each_operation_day/station_train_times.rb', line 16 def major_terminal_station_info_id @major_terminal_station_info_id end |
#terminal_station_infos ⇒ Object (readonly)
Returns the value of attribute terminal_station_infos.
13 14 15 |
# File 'lib/tokyo_metro/app/renderer/station_timetable/group/each_railway_line/each_direction/each_operation_day/station_train_times.rb', line 13 def terminal_station_infos @terminal_station_infos end |
#train_type_infos ⇒ Object (readonly)
Returns the value of attribute train_type_infos.
14 15 16 |
# File 'lib/tokyo_metro/app/renderer/station_timetable/group/each_railway_line/each_direction/each_operation_day/station_train_times.rb', line 14 def train_type_infos @train_type_infos end |
Instance Method Details
#has_one_terminal_station_info? ⇒ Boolean
18 19 20 |
# File 'lib/tokyo_metro/app/renderer/station_timetable/group/each_railway_line/each_direction/each_operation_day/station_train_times.rb', line 18 def has_one_terminal_station_info? @terminal_station_infos.length == 1 end |
#has_one_train_type_info? ⇒ Boolean
22 23 24 |
# File 'lib/tokyo_metro/app/renderer/station_timetable/group/each_railway_line/each_direction/each_operation_day/station_train_times.rb', line 22 def has_one_train_type_info? @train_type_infos.map( &:train_type_in_api ).map( &:id ).uniq.length == 1 end |
#hours ⇒ Object
26 27 28 29 30 31 32 33 34 35 36 37 38 |
# File 'lib/tokyo_metro/app/renderer/station_timetable/group/each_railway_line/each_direction/each_operation_day/station_train_times.rb', line 26 def hours midnight_hours = [ 0 , 1 , 2 ] a = @grouped_by_hour.keys.sort midnight_hours.each do | midnight_hour | if a.include?( midnight_hour ) a = a - [ midnight_hour ] a = a + [ midnight_hour ] end end a end |
#render_body ⇒ Object
40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 |
# File 'lib/tokyo_metro/app/renderer/station_timetable/group/each_railway_line/each_direction/each_operation_day/station_train_times.rb', line 40 def render_body h.render inline: <<-HAML , type: :haml , locals: h_locals - one_terminal_station_info = this.has_one_terminal_station_info? - one_train_type_info = this.has_one_train_type_info? %tbody - this.hours.each do |h| - station_train_times_in_an_hour = this.grouped_by_hour[h].sort_by( &:min_in_station_timetable ) %tr{ class: :hour_row } %td{ class: :hour }< = h %td{ class: [ :station_train_times , cycle( :odd , :even ) ] } - station_train_times_in_an_hour.each do | station_train_time | = station_train_time.decorate.render_in_station_timetable( this.terminal_station_infos , this.train_type_infos , one_train_type_info , one_terminal_station_info , this.major_terminal_station_info_id ) HAML end |
#render_message_in_header ⇒ Object
56 57 58 59 60 61 62 63 64 65 |
# File 'lib/tokyo_metro/app/renderer/station_timetable/group/each_railway_line/each_direction/each_operation_day/station_train_times.rb', line 56 def h.render inline: <<-HAML , type: :haml , locals: { ja: , en: } %tr %td{ colspan: 2 , class: :train_type_and_terminal_station_infos }< %div{ class: :text_ja }< = ja %div{ class: :text_en }< = en HAML end |