summaryrefslogtreecommitdiff
path: root/lib/coderay/encoders/debug.rb
blob: b08473347c7c8b47d0af58321a491a5f46473abd (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
module CodeRay
	module Encoders

		# = Debug Encoder
		class Debug < Encoder

			include Streamable
			register_for :debug

			FILE_EXTENSION = 'debug'

		protected
			def text_token text, kind
				@out <<
					if kind == :space
						text
					else
						text = text.gsub(/[)\\]/, '\\\\\0')
						"#{kind}(#{text})"
					end					
			end

			def block_token action, kind
				@out << super
			end

			def open_token kind
				"#{kind}<"
			end

			def close_token kind
				">"
			end

		end

	end
end