Class: AnsiChameleon::TextRenderer

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

Instance Method Summary collapse

Constructor Details

#initialize(style_sheet) ⇒ TextRenderer

Returns a new instance of TextRenderer.



4
5
6
# File 'lib/ansi_chameleon/text_renderer.rb', line 4

def initialize(style_sheet)
  @style_sheet_handler = StyleSheetHandler.new(style_sheet, StylePropertyNameTranslator)
end

Instance Method Details

#render(text) ⇒ Object



8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
# File 'lib/ansi_chameleon/text_renderer.rb', line 8

def render(text)
  text_rendering = TextRendering.new(@style_sheet_handler)

  chunks(text).each do |chunk|
    case
    when opening_tag?(chunk)
      text_rendering.push_opening_tag(tag_name(chunk))

    when closing_tag?(chunk)
      text_rendering.push_closing_tag(tag_name(chunk))

    else
      text_rendering.push_text(chunk)

    end
  end

  text_rendering.to_s
end