Method: Dispersion.ansi

Defined in:
lib/dispersion.rb

.ansi(code) ⇒ Object



28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
# File 'lib/dispersion.rb', line 28

def self.ansi(code)
	code.dup.tap do |buffer|
		offset = 0

		for start_offset, end_offset, token in annotate(code)
			start = THEME.fetch(token)

			buffer.bytesplice(start_offset + offset, 0, start)
			offset += start.bytesize

			buffer.bytesplice(end_offset + offset, 0, "\e[0m")
			offset += 4
		end
	end
end