Class: MarkTag::TagRenderer
- Inherits:
-
Object
- Object
- MarkTag::TagRenderer
- Defined in:
- lib/marktag.rb
Instance Method Summary collapse
- #get_header_identifier(level_headers, target_level) ⇒ Object
-
#initialize(headers) ⇒ TagRenderer
constructor
A new instance of TagRenderer.
- #render(file_path) ⇒ Object
Constructor Details
#initialize(headers) ⇒ TagRenderer
Returns a new instance of TagRenderer.
64 65 66 |
# File 'lib/marktag.rb', line 64 def initialize(headers) @headers = headers end |
Instance Method Details
#get_header_identifier(level_headers, target_level) ⇒ Object
91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 |
# File 'lib/marktag.rb', line 91 def get_header_identifier(level_headers,target_level) if (target_level) == 0 return nil end identifiers = [] (target_level -1).downto(0) do |l| identifier = level_headers.values_at(l) != nil ? level_headers[l] : "none" identifiers.push(identifier) end ctag_class = "header:" header_str = identifiers.reverse.map do |i| i #i.gsub(/\s/,"_") end.join "." return ctag_class + header_str end |
#render(file_path) ⇒ Object
68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 |
# File 'lib/marktag.rb', line 68 def render(file_path) tag = "" level_headers = [] @headers.each_with_index do |header,idx| level = header.last - 1 level_headers[level] = header.first name = header.first header_identifier = get_header_identifier(level_headers,level) # esq_name = name.gsub(/\s/,"_") esq_name = name if (header_identifier) tag += "#{esq_name}\t#{file_path}\t/^#\\+\\s\\*#{name}$/;\"\th\t#{header_identifier}" else tag += "#{esq_name}\t#{file_path}\t/^#\\+\\s\\*#{name}$/;\"\th" end tag += "\n" end return tag end |