Class: TextLineBuilder
- Inherits:
-
Object
- Object
- TextLineBuilder
- Defined in:
- lib/almirah/doc_items/text_line.rb
Instance Attribute Summary collapse
-
#builder_context ⇒ Object
Returns the value of attribute builder_context.
Instance Method Summary collapse
-
#initialize(builder_context) ⇒ TextLineBuilder
constructor
A new instance of TextLineBuilder.
- #restore(token_list) ⇒ Object
Constructor Details
#initialize(builder_context) ⇒ TextLineBuilder
Returns a new instance of TextLineBuilder.
228 229 230 |
# File 'lib/almirah/doc_items/text_line.rb', line 228 def initialize(builder_context) @builder_context = builder_context end |
Instance Attribute Details
#builder_context ⇒ Object
Returns the value of attribute builder_context.
226 227 228 |
# File 'lib/almirah/doc_items/text_line.rb', line 226 def builder_context @builder_context end |
Instance Method Details
#restore(token_list) ⇒ Object
232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 |
# File 'lib/almirah/doc_items/text_line.rb', line 232 def restore(token_list) result = '' return '' if token_list.nil? sub_list_url_text = nil sub_list_url_address = nil tl = token_list.length ti = 0 while ti < tl case token_list[ti].class.name when 'ItalicToken' is_found = false ti_starting_position = ti # try to find closing part tii = ti + 1 while tii < tl if token_list[tii].instance_of? ItalicToken sub_list = token_list[(ti + 1)..(tii - 1)] result += @builder_context.italic(restore(sub_list)) ti = tii + 1 is_found = true break end tii += 1 end unless is_found result += '*' ti = ti_starting_position + 1 end when 'BoldToken' is_found = false ti_starting_position = ti # try to find closing part tii = ti + 1 while tii < tl if token_list[tii].instance_of? BoldToken sub_list = token_list[(ti + 1)..(tii - 1)] result += @builder_context.bold(restore(sub_list)) ti = tii + 1 is_found = true break end tii += 1 end unless is_found result += '**' ti = ti_starting_position + 1 end when 'BoldAndItalicToken' is_found = false ti_starting_position = ti # try to find closing part tii = ti + 1 while tii < tl if token_list[tii].instance_of? BoldAndItalicToken sub_list = token_list[(ti + 1)..(tii - 1)] result += @builder_context.bold_and_italic(restore(sub_list)) ti = tii + 1 is_found = true break end tii += 1 end unless is_found result += '***' ti = ti_starting_position + 1 end when 'SquareBracketLeft' # try to find closing part is_found = false tii = ti + 1 ti_starting_position = ti while tii < tl case token_list[tii].class.name when 'SquareBracketRightAndParentheseLeft' sub_list_url_text = token_list[(ti + 1)..(tii - 1)] ti = tii + 1 tiii = ti while tiii < tl case token_list[tiii].class.name when 'ParentheseRight' sub_list_url_address = token_list[(tii + 1)..(tiii - 1)] ti = tiii + 1 is_found = true break end tiii += 1 end break when 'SquareBracketRight' break end tii += 1 end if is_found result += @builder_context.link(restore(sub_list_url_text), restore(sub_list_url_address)) else result += '[' ti = ti_starting_position + 1 end when 'InlineCodeToken' result += @builder_context.inline_code(token_list[ti].value) ti += 1 when 'TextLineToken', 'ParentheseLeft', 'ParentheseRight', 'SquareBracketRight' result += token_list[ti].value ti += 1 else ti += 1 end end result end |