⚲
Project
General
Profile
Sign in
Register
Home
Projects
Help
Search
:
Ruby master
All Projects
Ruby
»
Ruby master
Overview
Activity
Roadmap
Issues
Repository
Like
Download (1.27 KB)
Bug #1711
ยป marshal.rb
runpaint (Run Paint Run Run)
, 07/02/2009 02:30 AM
class
UserDefined
class
Nested
def
==
(
other
)
other
.
kind_of?
self
.
class
end
end
attr_reader
:a
,
:b
def
initialize
@a
=
'stuff'
@b
=
@a
end
def
_dump
(
depth
)
Marshal
.
dump
[
@a
,
@b
]
end
def
self
.
_load
(
data
)
a
,
b
=
Marshal
.
load
data
obj
=
allocate
obj
.
instance_variable_set
:@a
,
a
obj
.
instance_variable_set
:@b
,
b
obj
end
def
==
(
other
)
self
.
class
===
other
and
@a
==
other
.
a
and
@b
==
other
.
b
end
end
class
UserDefinedWithIvar
attr_reader
:a
,
:b
,
:c
def
initialize
@a
=
'stuff'
@a
.
instance_variable_set
:@foo
,
:UserDefinedWithIvar
@b
=
'more'
@c
=
@b
end
def
_dump
(
depth
)
Marshal
.
dump
[
@a
,
@b
,
@c
]
end
def
self
.
_load
(
data
)
a
,
b
,
c
=
Marshal
.
load
data
obj
=
allocate
obj
.
instance_variable_set
:@a
,
a
obj
.
instance_variable_set
:@b
,
b
obj
.
instance_variable_set
:@c
,
c
obj
end
def
==
(
other
)
self
.
class
===
other
and
@a
==
other
.
a
and
@b
==
other
.
b
and
@c
==
other
.
c
and
@a
.
instance_variable_get
(
:@foo
)
==
other
.
a
.
instance_variable_get
(
:@foo
)
end
end
arr
=
[]
myproc
=
Proc
.
new
{
|
o
|
arr
<<
o
}
o1
=
UserDefined
.
new
;
o2
=
UserDefinedWithIvar
.
new
obj
=
[
o1
,
o2
,
o1
,
o2
]
Marshal
.
load
Marshal
.
dump
(
obj
),
myproc
p
arr
==
[
o1
,
o2
,
obj
]
(1-1/1)
Loading...