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
|
class Module
def method_added name
puts "I> #{self}::#{name}"
end
def singleton_method_added name
puts "S> #{self}::#{name}"
end
end
module M
module_function
def initialize
puts 'foo'
end
private
def self.foo
end
p private_instance_methods(false).sort
p singleton_methods(false).sort
class << self
p public_instance_methods(false).map { |x| x.to_s }.include?("foo")
p private_instance_methods(false).map { |x| x.to_s }.include?("foo")
end
end
M.initialize rescue p$!
M.foo rescue p$!
|