| 12
 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
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 
 | class Module
  def method_added name
    puts "#{self}::#{name}"
  end
  def dump
    puts '---'
  
    puts "#{self}:"
    puts "public: #{public_instance_methods(false).sort.inspect}"
    puts "private: #{private_instance_methods(false).sort.inspect}"
    puts "protected: #{protected_instance_methods(false).sort.inspect}" 
  
    puts "S(#{self}):"
    class << self
      puts "public: #{public_instance_methods(false).delete_if { |x| x[-2..-2] != "_" }.sort.inspect}"
      puts "private: #{private_instance_methods(false).delete_if { |x| x[-2..-1] != "_" }.sort.inspect}"
      puts "protected: #{protected_instance_methods(false).delete_if { |x| x[-2..-1] != "_" }.sort.inspect}"
    end
  
    puts '---'  
  end
end
module M
  def i_M
  end
  module_function
  def c_M
  end
  
  alias ai_M i_M
  alias ac_M c_M
  
  dump
end
module N
  def i_pub_N
  end
  
  private
  
  def i_pri_N
  end
  
  protected
  
  def i_pro_N
  end
    
  alias ai_pub_N i_pub_N
  alias ai_pri_N i_pri_N
  alias ai_pro_N i_pro_N
  
  dump
end
 |