class Gem::SafeMarshal::Visitors::StreamPrinter - Documentation for Ruby 3.3

# class Gem::SafeMarshal::Visitors::StreamPrinter

### Public Class Methods

new(io, indent: "") click to toggle source

    # File lib/rubygems/safe_marshal/visitors/stream_printer.rb, line 8
    def initialize(io, indent: "")
      @io = io
      @indent = indent
      @level = 0
    end

### Public Instance Methods

visit(target) click to toggle source
Calls superclass method

    # File lib/rubygems/safe_marshal/visitors/stream_printer.rb, line 14
    def visit(target)
      @io.write("#{@indent * @level}#{target.class}")
      target.instance_variables.each do |ivar|
        value = target.instance_variable_get(ivar)
        next if Elements::Element === value || Array === value
        @io.write(" #{ivar}=#{value.inspect}")
      end
      @io.write("\n")
      begin
        @level += 1
        super
      ensure
        @level -= 1
      end
    end