123456789_123456789_123456789_123456789_123456789_

Class: Gem::SafeMarshal::Visitors::StreamPrinter

Relationships & Source Files
Super Chains via Extension / Inclusion / Inheritance
Class Chain:
self, Visitor
Instance Chain:
self, Visitor
Inherits: Gem::SafeMarshal::Visitors::Visitor
Defined in: lib/rubygems/safe_marshal/visitors/stream_printer.rb

Constant Summary

Visitor - Inherited

DISPATCH

Class Method Summary

Instance Method Summary

Constructor Details

.new(io, indent: "") ⇒ StreamPrinter

[ GitHub ]

  
# File 'lib/rubygems/safe_marshal/visitors/stream_printer.rb', line 8

def initialize(io, indent: "")
  @io = io
  @indent = indent
  @level = 0
end

Instance Method Details

#visit(target)

[ GitHub ]

  
# 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