Chris@909: autoload :YAML, 'yaml' Chris@909: Chris@909: module CodeRay Chris@909: module Encoders Chris@909: Chris@909: # = YAML Encoder Chris@909: # Chris@909: # Slow. Chris@909: class YAML < Encoder Chris@909: Chris@909: register_for :yaml Chris@909: Chris@909: FILE_EXTENSION = 'yaml' Chris@909: Chris@909: protected Chris@909: def setup options Chris@909: super Chris@909: Chris@909: @data = [] Chris@909: end Chris@909: Chris@909: def finish options Chris@909: output ::YAML.dump(@data) Chris@909: end Chris@909: Chris@909: public Chris@909: def text_token text, kind Chris@909: @data << [text, kind] Chris@909: end Chris@909: Chris@909: def begin_group kind Chris@909: @data << [:begin_group, kind] Chris@909: end Chris@909: Chris@909: def end_group kind Chris@909: @data << [:end_group, kind] Chris@909: end Chris@909: Chris@909: def begin_line kind Chris@909: @data << [:begin_line, kind] Chris@909: end Chris@909: Chris@909: def end_line kind Chris@909: @data << [:end_line, kind] Chris@909: end Chris@909: Chris@909: end Chris@909: Chris@909: end Chris@909: end