File: Builtins.rb

package info (click to toggle)
dlr-languages 20090805%2Bgit.e6b28d27%2Bdfsg-3
  • links: PTS, VCS
  • area: main
  • in suites: squeeze
  • size: 51,484 kB
  • ctags: 59,257
  • sloc: cs: 298,829; ruby: 159,643; xml: 19,872; python: 2,820; yacc: 1,960; makefile: 96; sh: 65
file content (42 lines) | stat: -rw-r--r-- 1,245 bytes parent folder | download
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
def dump(mod) 
    puts "#{mod.instance_of?(Module) ? "module" : "class"} #{mod}"
    
    puts "  class: #{mod.class}"
    puts "  super: #{mod.superclass}" if mod.method_defined?(:superclass)
    
    strict_ancestors = mod.ancestors - [mod]
    
    print '  ancestors: '
    mod.ancestors.each { |a| print "#{a}," }
    puts
    puts
    
    puts '  declared private instance methods:'
    ms = mod.private_instance_methods(false)
    ms.sort.each { |m| puts "    #{m}" }

    puts '  declared protected instance methods:'
    ms = mod.protected_instance_methods(false)
    ms.sort.each { |m| puts "    #{m}" }
    
    puts '  declared public instance methods:'
    ms = mod.public_instance_methods(false)
    ms.sort.each { |m| puts "    #{m}" }
    
    puts '  declared singleton methods:'
    ms = mod.singleton_methods(false)
    ms.sort.each { |m| puts "    #{m}" }
    
    puts '  declared class variables:'
    ms = mod.class_variables
    strict_ancestors.each { |a| ms = ms - a.class_variables }
    ms.sort.each { |m| puts "    #{m}" }
    
    puts '  declared constants:'
    ms = mod.constants
    strict_ancestors.each { |a| ms = ms - a.constants }
    ms.sort.each { |m| puts "    #{m}" }
    
    puts 'end'
    puts
end