? . Ruby 2.2
ObjectSpace.each_object(Module).flat_map { |m|
m.singleton_class.private_methods(false) }.size
- singleton :
ObjectSpace.each_object(Class).flat_map { |c|
c.singleton_class.private_methods(false) }.size
[Edit: next edit my original post to provide more useful information.)
One thing puzzles me. Let be:
a = ObjectSpace.each_object(Class).map { |c|
[c, c.singleton_class.private_methods(false)] }.to_h
b = ObjectSpace.each_object(Class).map { |c|
[c, c.private_methods(false)] }.to_h
def diff(a,b)
a.map {|k,v| b.key?(k) ? [k,v-b[k]] : [k,v] }.reject { |_,a| a.empty?}.to_h
end
I was expecting diff(a,b) == diff(b,a) == {}. Let's get a look:
diff(a,b)
diff(b,a)
Hmmm.
source
share