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