Class: Kward::ANSI::MarkdownStream
- Inherits:
-
Object
- Object
- Kward::ANSI::MarkdownStream
- Defined in:
- lib/kward/ansi.rb
Instance Method Summary collapse
-
#initialize(enabled: ANSI.enabled?) ⇒ MarkdownStream
constructor
A new instance of MarkdownStream.
- #render(delta, final: false) ⇒ Object
Constructor Details
#initialize(enabled: ANSI.enabled?) ⇒ MarkdownStream
Returns a new instance of MarkdownStream.
129 130 131 132 133 |
# File 'lib/kward/ansi.rb', line 129 def initialize(enabled: ANSI.enabled?) @enabled = enabled @pending = +"" @in_fence = false end |
Instance Method Details
#render(delta, final: false) ⇒ Object
135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 |
# File 'lib/kward/ansi.rb', line 135 def render(delta, final: false) text = delta.to_s return ANSI.markdown(text, enabled: @enabled) if fast_markdown?(text, final) @pending << text rendered = +"" while (match = @pending.match(/\r\n|\r|\n/)) line = @pending[0...match.begin(0)] @pending = @pending[(match.end(0))..] || +"" rendered << render_line(line) << "\n" end if final && !@pending.empty? rendered << render_line(@pending) @pending.clear end if final && @in_fence rendered << "\n" unless rendered.empty? || rendered.end_with?("\n") rendered << ANSI.colorize("└" + "─" * 39, :gray, enabled: @enabled) @in_fence = false end rendered end |