Debug Encoder

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 Tokens#dump for caching purposes.

See also: Scanners::Debug

Methods
Constants
FILE_EXTENSION = 'raydebug'
Public Class methods
new(options = {})
# File lib/coderay/encoders/debug.rb, line 21
    def initialize options = {}
      super
      @opened = []
    end
Public Instance methods
begin_group(kind)
# File lib/coderay/encoders/debug.rb, line 36
    def begin_group kind
      @opened << kind
      @out << kind.to_s << '<'
    end
begin_line(kind)
# File lib/coderay/encoders/debug.rb, line 50
    def begin_line kind
      @out << kind.to_s << '['
    end
end_group(kind)
# 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
end_line(kind)
# File lib/coderay/encoders/debug.rb, line 54
    def end_line kind
      @out << ']'
    end
text_token(text, kind)
# File lib/coderay/encoders/debug.rb, line 26
    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