Class: MarkTag::TagRenderer

Inherits:
Object
  • Object
show all
Defined in:
lib/marktag.rb

Instance Method Summary collapse

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