@@ -82,37 +82,41 @@ def times(display_day: false, display_date: false)
8282 t
8383 end
8484
85+ parts_for = lambda do |d , prefix : nil |
86+ parts = [ ]
87+ parts << prefix if prefix
88+ parts << "#{ day . call ( d ) } , " if display_day
89+ parts << "#{ date . call ( d ) } @ " if display_date
90+ parts << format_time . call ( d )
91+ parts . join
92+ end
93+
8594 # --------------------------------------------------
8695 # DIFFERENT DAY → two lines
8796 # --------------------------------------------------
8897 if s . to_date != e . to_date
89- line1 = "Start: "
90- line1 << "#{ day . call ( s ) } , " if display_day
91- line1 << "#{ date . call ( s ) } @ " if display_date
92- line1 << format_time . call ( s )
93-
94- line2 = "End: "
95- line2 << "#{ day . call ( e ) } , " if display_day
96- line2 << "#{ date . call ( e ) } @ " if display_date
97- line2 << format_time . call ( e )
98-
99- return "#{ line1 } <br>#{ line2 } "
98+ return h . safe_join (
99+ [
100+ parts_for . call ( s , prefix : "Start: " ) ,
101+ parts_for . call ( e , prefix : "End: " )
102+ ] ,
103+ h . tag . br
104+ )
100105 end
101106
102107 # --------------------------------------------------
103108 # SAME DAY → one line unless times differ
104109 # --------------------------------------------------
105110 same_exact_time = ( s . hour == e . hour ) && ( s . min == e . min )
106111
107- line = ""
108- line << "#{ day . call ( s ) } , " if display_day
109- line << "#{ date . call ( s ) } @ " if display_date
112+ parts = [ ]
113+ parts << "#{ day . call ( s ) } , " if display_day
114+ parts << "#{ date . call ( s ) } @ " if display_date
110115
111116 if same_exact_time
112117 # Only one time
113- line << format_time . call ( s )
118+ parts << format_time . call ( s )
114119 else
115- # Start time
116120 s_hour = s . strftime ( "%-l" )
117121 s_min = s . strftime ( "%M" )
118122 s_ampm = s . strftime ( "%P" )
@@ -121,24 +125,24 @@ def times(display_day: false, display_date: false)
121125 e_min = e . strftime ( "%M" )
122126 e_ampm = e . strftime ( "%P" )
123127
124- hide_start_min = ( s_min == "00" )
125- hide_end_min = ( e_min == "00" )
128+ hide_start_min = ( s_min == "00" )
129+ hide_end_min = ( e_min == "00" )
126130 hide_start_ampm = ( s_ampm == e_ampm )
127131
128132 # Start
129- line << s_hour
130- line << ":#{ s_min } " unless hide_start_min
131- line << " #{ s_ampm } " unless hide_start_ampm
132-
133- line << " - "
133+ start_time = s_hour . dup
134+ start_time << ":#{ s_min } " unless hide_start_min
135+ start_time << " #{ s_ampm } " unless hide_start_ampm
134136
135137 # End
136- line << e_hour
137- line << ":#{ e_min } " unless hide_end_min
138- line << " #{ e_ampm } "
138+ end_time = e_hour . dup
139+ end_time << ":#{ e_min } " unless hide_end_min
140+ end_time << " #{ e_ampm } "
141+
142+ parts << "#{ start_time } - #{ end_time } "
139143 end
140144
141- line
145+ h . safe_join ( parts )
142146 end
143147
144148 def breadcrumbs
0 commit comments