Class: Markleft::Generator

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

Overview

—————– Code Generator Module —————– #

Instance Method Summary collapse

Instance Method Details

#generate(node) ⇒ Object



136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
# File 'lib/markleft.rb', line 136

def generate(node)
  case node
  when BoldNode
    generate_bold(node)
  when ItalicsNode
    generate_italics(node)
  when NewlineNode
    generate_newline(node)
  when TextNode
    generate_text(node)
  when HeadingNode
    generate_heading(node)
  when StrikethroughNode
    generate_strikethrough(node)
  else
    raise "Unexpected node type: #{node.class}"
  end
end

#generate_all(nodes) ⇒ Object



179
180
181
# File 'lib/markleft.rb', line 179

def generate_all(nodes)
  nodes.map { |node| generate(node) }.join
end

#generate_bold(node) ⇒ Object



155
156
157
# File 'lib/markleft.rb', line 155

def generate_bold(node)
  "<b>#{node.value}</b>"
end

#generate_heading(node) ⇒ Object



167
168
169
# File 'lib/markleft.rb', line 167

def generate_heading(node)
  "<h#{node.level}>#{node.value}</h#{node.level}>"
end

#generate_italics(node) ⇒ Object



159
160
161
# File 'lib/markleft.rb', line 159

def generate_italics(node)
  "<i>#{node.value}</i>"
end

#generate_newline(_node) ⇒ Object



163
164
165
# File 'lib/markleft.rb', line 163

def generate_newline(_node)
  "<br>"
end

#generate_strikethrough(node) ⇒ Object



171
172
173
# File 'lib/markleft.rb', line 171

def generate_strikethrough(node)
  "<del>#{node.value}</del>"
end

#generate_text(node) ⇒ Object



175
176
177
# File 'lib/markleft.rb', line 175

def generate_text(node)
  node.value
end