Class: PrmGenerator::LinkResolver
- Inherits:
-
Object
- Object
- PrmGenerator::LinkResolver
- Extended by:
- T::Sig
- Defined in:
- lib/udb/prm_generator.rb
Overview
Handles link resolution for cross-references
Class Method Summary collapse
Class Method Details
.create_asciidoc_link(type, name, link_text) ⇒ Object
375 376 377 378 379 380 381 382 383 384 385 386 387 388 389 390 391 392 393 394 |
# File 'lib/udb/prm_generator.rb', line 375 def self.create_asciidoc_link(type, name, link_text) escaped_text = link_text.gsub("]", '\\]').gsub(",", '\\,') case type when "csr_field" base_csr_name, field_name = name.split(".", 2) "<<csr:#{base_csr_name}-#{field_name}-def,#{escaped_text}>>" when "func" "<<#{name}-func-def,#{escaped_text}>>" when "csr" "<<csr-#{name.gsub('.', '_')}-def,#{escaped_text}>>" when "inst" "<<inst-#{name.gsub('.', '_')}-def,#{escaped_text}>>" when "ext" "<<ext:#{name}-def,#{escaped_text}>>" else Udb.logger.warn "[WARN] Unknown link type '#{type}' for link to '#{name}'" escaped_text end end |
.resolve(processor_config, content) ⇒ Object
353 354 355 356 357 358 359 360 361 362 363 364 365 366 367 368 369 370 371 |
# File 'lib/udb/prm_generator.rb', line 353 def self.resolve(processor_config, content) return "" unless content.is_a?(String) # Resolve %%LINK%...%% and %%UDB_DOC_LINK%...%% markup content = content.gsub(/%%(UDB_DOC_LINK|LINK)%([^;%]+)\s*;\s*([^;%]+)\s*;\s*([^%]+)%%/) do type = $2.strip name = $3.strip link_text = $4.strip create_asciidoc_link(type, name, link_text) end # Use processor config's link resolver if available if processor_config.respond_to?(:find_replace_links) content = processor_config.find_replace_links(content) end content end |