Sha256: 9cd81f90d8699d8b0dddef52109eff28e4f40c92ded080c4da58d60a413c1fc8

Contents?: true

Size: 1.32 KB

Versions: 10

Compression:

Stored size: 1.32 KB

Contents

module Psych
  module Visitors
    class Emitter < Psych::Visitors::Visitor
      def initialize io, options = {}
        @handler = Psych::Emitter.new io
        @handler.indentation = options[:indentation] if options[:indentation]
        @handler.canonical = options[:canonical] if options[:canonical]
        @handler.line_width = options[:line_width] if options[:line_width]
      end

      def visit_Psych_Nodes_Stream o
        @handler.start_stream o.encoding
        o.children.each { |c| accept c }
        @handler.end_stream
      end

      def visit_Psych_Nodes_Document o
        @handler.start_document o.version, o.tag_directives, o.implicit
        o.children.each { |c| accept c }
        @handler.end_document o.implicit_end
      end

      def visit_Psych_Nodes_Scalar o
        @handler.scalar o.value, o.anchor, o.tag, o.plain, o.quoted, o.style
      end

      def visit_Psych_Nodes_Sequence o
        @handler.start_sequence o.anchor, o.tag, o.implicit, o.style
        o.children.each { |c| accept c }
        @handler.end_sequence
      end

      def visit_Psych_Nodes_Mapping o
        @handler.start_mapping o.anchor, o.tag, o.implicit, o.style
        o.children.each { |c| accept c }
        @handler.end_mapping
      end

      def visit_Psych_Nodes_Alias o
        @handler.alias o.anchor
      end
    end
  end
end

Version data entries

10 entries across 10 versions & 1 rubygems

Version Path
psych-1.3.3 lib/psych/visitors/emitter.rb
psych-1.3.2 lib/psych/visitors/emitter.rb
psych-1.3.1 lib/psych/visitors/emitter.rb
psych-1.3.0 lib/psych/visitors/emitter.rb
psych-1.2.2 lib/psych/visitors/emitter.rb
psych-1.2.2.rc1 lib/psych/visitors/emitter.rb
psych-1.2.1 lib/psych/visitors/emitter.rb
psych-1.2.0 lib/psych/visitors/emitter.rb
psych-1.1.1 lib/psych/visitors/emitter.rb
psych-1.1.0 lib/psych/visitors/emitter.rb