96: def map(hash, constants, mod=nil)
97: @seen = {} unless mod
98:
99: constants.each do |const|
100: name = namespace mod, const
101: m = class_or_module name
102: next unless m and not @seen[m]
103: @seen[m] = true
104:
105: ms = m.methods(false).map { |x| x.to_s }
106: hash["#{name}."] = ms.sort unless ms.empty?
107:
108: ms = m.public_instance_methods(false) +
109: m.protected_instance_methods(false)
110: ms.map! { |x| x.to_s }
111: hash["#{name}#"] = ms.sort unless ms.empty?
112:
113: map hash, m.constants, name
114: end
115:
116: hash
117: end