Class: TokyoMetro::App::Renderer::RealTimeInfos
Defined Under Namespace
Modules: MetaDatum, SideMenu
Classes: EachRailwayLine
Instance Attribute Summary collapse
render - (1) Main
collapse
render - 3. Meta Data
collapse
Instance Method Summary
collapse
Constructor Details
#initialize(request, railway_lines, http_client = ::HTTPClient.new, visibility: :visible, test_mode: nil) ⇒ RealTimeInfos
Returns a new instance of RealTimeInfos.
3
4
5
6
7
8
9
10
11
12
13
14
15
|
# File 'lib/tokyo_metro/app/renderer/real_time_infos.rb', line 3
def initialize( request , railway_lines , http_client = ::HTTPClient.new , visibility: :visible , test_mode: nil )
super( request )
@http_client = http_client
@visibility = visibility
@test_mode = test_mode
set_railway_lines( railway_lines )
set_infos_of_each_railway_line
raise unless has_any_railway_line?
set_meta_datum
end
|
Instance Attribute Details
#infos_of_each_railway_line ⇒ Object
Returns the value of attribute infos_of_each_railway_line.
17
18
19
|
# File 'lib/tokyo_metro/app/renderer/real_time_infos.rb', line 17
def infos_of_each_railway_line
@infos_of_each_railway_line
end
|
Class Method Details
.process_in_loop ⇒ Object
147
148
149
150
151
152
153
|
# File 'lib/tokyo_metro/app/renderer/real_time_infos.rb', line 147
def self.process_in_loop
if on_rails_application?
puts "process_in_loop"
self.new( nil , ::RailwayLine.tokyo_metro , visibility: :hidden ).update_train_operation_text_in_db
end
return nil
end
|
Instance Method Details
#has_any_railway_line? ⇒ Boolean
21
22
23
|
# File 'lib/tokyo_metro/app/renderer/real_time_infos.rb', line 21
def has_any_railway_line?
@railway_lines.present?
end
|
#has_multiple_railway_lines? ⇒ Boolean
29
30
31
|
# File 'lib/tokyo_metro/app/renderer/real_time_infos.rb', line 29
def has_multiple_railway_lines?
@railway_lines.length > 1
end
|
#has_one_railway_line? ⇒ Boolean
25
26
27
|
# File 'lib/tokyo_metro/app/renderer/real_time_infos.rb', line 25
def has_one_railway_line?
@railway_lines.length == 1
end
|
#has_train_location_infos? ⇒ Boolean
35
36
37
|
# File 'lib/tokyo_metro/app/renderer/real_time_infos.rb', line 35
def has_train_location_infos?
@infos_of_each_railway_line.map( &:train_location_infos ).flatten.present?
end
|
#has_valid_train_location_infos? ⇒ Boolean
39
40
41
|
# File 'lib/tokyo_metro/app/renderer/real_time_infos.rb', line 39
def has_valid_train_location_infos?
valid_train_location_infos.present?
end
|
#render(include_train_location_infos: false, controller: :train_operation, options: nil) ⇒ Object
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
|
# File 'lib/tokyo_metro/app/renderer/real_time_infos.rb', line 51
def render( include_train_location_infos: false , controller: :train_operation , options: nil )
if options.present?
options = [ options ].flatten
end
h_locals = {
this: self ,
request: @request ,
include_train_location_infos: include_train_location_infos ,
controller: controller ,
add_index_of_train_location: options.try( :include? , :add_index_of_train_location )
}
h.render inline: <<-HAML , type: :haml , locals: h_locals
%div{ id: :train_operation_infos }
= this.render_title_of_train_operation_infos( add_index_of_train_location: add_index_of_train_location )
= this.render_train_operation_infos( controller )
- if include_train_location_infos
- if this.has_valid_train_location_infos?
= this.render_title_of_train_location_infos
= this.render_train_location_infos
HAML
end
|
140
141
142
|
# File 'lib/tokyo_metro/app/renderer/real_time_infos.rb', line 140
def render_meta_datum( include_train_location_infos: nil )
@meta_datum.try( :render , include_train_location_infos: include_train_location_infos )
end
|
#render_title_of_train_location_infos ⇒ Object
128
129
130
131
132
133
134
135
136
|
# File 'lib/tokyo_metro/app/renderer/real_time_infos.rb', line 128
def render_title_of_train_location_infos
::TokyoMetro::App::Renderer::Concerns::Header::Content.new(
@request ,
:title_of_train_location_infos ,
:train_location ,
::TrainLocationDecorator.common_title_ja ,
::TrainLocationDecorator.common_title_en
).render
end
|
#render_title_of_train_operation_infos(add_index_of_train_location: false) ⇒ Object
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
|
# File 'lib/tokyo_metro/app/renderer/real_time_infos.rb', line 103
def render_title_of_train_operation_infos( add_index_of_train_location: false )
proc_for_additional_content = ::Proc.new {
h.render inline: <<-HAML , type: :haml , locals: { this: self , add_index_of_train_location: add_index_of_train_location }
- if add_index_of_train_location and this.has_train_location_infos?
%div{ class: :link_info_to_train_location_of_each_railway_line }
%div{ class: :icon }<
= ::TokyoMetro::App::Renderer::Icon.train_location( request , 2 ).render
%div{ class: :text }<
%p{ class: :text_ja }<
= "路線名をクリックすると、各路線で現在運行している列車が表示されます。"
%p{ class: :text_en }<
= "To display train locations of each railway line, please click the railway line name."
HAML
}
::TokyoMetro::App::Renderer::Concerns::Header::Content.new(
@request ,
:title_of_train_operation_infos ,
:train_operation ,
::TrainOperation::InfoDecorator.common_title_ja ,
::TrainOperation::InfoDecorator.common_title_en ,
additional_content: proc_for_additional_content
).render
end
|
#render_train_location_infos ⇒ Object
89
90
91
92
93
94
95
96
97
98
99
100
101
|
# File 'lib/tokyo_metro/app/renderer/real_time_infos.rb', line 89
def render_train_location_infos
h.render inline: <<-HAML , type: :haml , locals: { this: self }
%div{ id: :train_location_infos }
- if this.has_one_railway_line?
- this.infos_of_each_railway_line.each do | info_of_a_railway_line |
= info_of_a_railway_line.render_train_location_infos
- else
- this.infos_of_each_railway_line.each do | info_of_a_railway_line |
- if info_of_a_railway_line.train_location_infos.present?
= info_of_a_railway_line.railway_line.decorate.render_title_in_train_location
= info_of_a_railway_line.render_train_location_infos
HAML
end
|
#render_train_operation_infos(controller) ⇒ Object
77
78
79
80
81
82
83
84
85
86
87
|
# File 'lib/tokyo_metro/app/renderer/real_time_infos.rb', line 77
def render_train_operation_infos( controller )
h_locals = {
this: self ,
controller: controller
}
h.render inline: <<-HAML , type: :haml , locals: h_locals
- this.infos_of_each_railway_line.each do | info_of_a_railway_line |
= info_of_a_railway_line.render_train_operation_info( controller )
HAML
end
|
#update_train_operation_text_in_db ⇒ Object
43
44
45
46
47
|
# File 'lib/tokyo_metro/app/renderer/real_time_infos.rb', line 43
def update_train_operation_text_in_db
@infos_of_each_railway_line.each do | info_of_railway_line |
info_of_railway_line.update_train_operation_text_in_db
end
end
|