Fast encoder producing simple debug output.
It is readable and diff-able and is used for testing.
You cannot fully restore the tokens information from the output, because consecutive :space tokens are merged. Use CodeRay::Tokens#dump for caching purposes.
See also: Scanners::Debug
# File lib/coderay/encoders/debug.rb, line 21 def initialize options = {} super @opened = [] end
# File lib/coderay/encoders/debug.rb, line 36 def begin_group kind @opened << kind @out << kind.to_s << '<' end
# File lib/coderay/encoders/debug.rb, line 50 def begin_line kind @out << kind.to_s << '[' end
# File lib/coderay/encoders/debug.rb, line 41 def end_group kind if @opened.last != kind puts @out raise "we are inside #{@opened.inspect}, not #{kind}" end @opened.pop @out << '>' end
# File lib/coderay/encoders/debug.rb, line 54 def end_line kind @out << ']' end
# File lib/coderay/encoders/debug.rb, line 26 def text_token text, kind if kind == :space @out << text else # TODO: Escape ( text = text.gsub(%r[)\\]/, '\\\0') # escape ) and \ @out << kind.to_s << '(' << text << ')' end end