mirror of
https://github.com/ruby/ruby.git
synced 2022-11-09 12:17:21 -05:00
44 lines
903 B
Ruby
44 lines
903 B
Ruby
|
require 'soap/marshal'
|
||
|
|
||
|
class Node; include SOAP::Marshallable
|
||
|
attr_reader :first, :second, :str
|
||
|
|
||
|
def initialize(*init_next)
|
||
|
@first = init_next[0]
|
||
|
@second = init_next[1]
|
||
|
end
|
||
|
end
|
||
|
|
||
|
n9 = Node.new
|
||
|
n81 = Node.new(n9)
|
||
|
n82 = Node.new(n9)
|
||
|
n7 = Node.new(n81, n82)
|
||
|
n61 = Node.new(n7)
|
||
|
n62 = Node.new(n7)
|
||
|
n5 = Node.new(n61, n62)
|
||
|
n41 = Node.new(n5)
|
||
|
n42 = Node.new(n5)
|
||
|
n3 = Node.new(n41, n42)
|
||
|
n21 = Node.new(n3)
|
||
|
n22 = Node.new(n3)
|
||
|
n1 = Node.new(n21, n22)
|
||
|
|
||
|
File.open("digraph_marshalled_string.soap", "wb") do |f|
|
||
|
SOAP::Marshal.dump(n1, f)
|
||
|
end
|
||
|
|
||
|
marshalledString = File.open("digraph_marshalled_string.soap").read
|
||
|
|
||
|
puts marshalledString
|
||
|
|
||
|
newnode = SOAP::Marshal.unmarshal(marshalledString)
|
||
|
|
||
|
puts newnode.inspect
|
||
|
|
||
|
p newnode.first.first.__id__
|
||
|
p newnode.second.first.__id__
|
||
|
p newnode.first.first.first.first.__id__
|
||
|
p newnode.second.first.second.first.__id__
|
||
|
|
||
|
File.unlink("digraph_marshalled_string.soap")
|