1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49
|
class << Struct.new(:f,:g)
p private_instance_methods(false)
p instance_methods(false)
end
x = Struct.new(:a,:b,:c)
y = Struct.new(:x,:y)
y.send(:initialize_copy, x) rescue p $!
ix1 = x[1,2,3]
ix2 = x[10,20,30]
iy1 = y[6,7]
iy2 = y[60,70]
# invalid arg class:
ix1.send(:initialize_copy, iy1) rescue p $!
ix1.send(:initialize_copy, ix2) rescue p $!
p ix1
Y = y
class YY < Y
end
iyy = YY.new
# error:
iyy.send(:initialize_copy, iy1) rescue p $!
puts '---'
class Struct
def initialize_copy *a
puts 'init_copy'
end
end
x = Struct.new(:a)
p x.private_instance_methods(false)
#y = x.dup
p y.members
class MS < String
end
MS.dup
|