Method: NameMap#map

Defined in:
lib/mspec/utils/name_map.rb

#map(hash, constants, mod = nil) ⇒ Object



96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
# File 'lib/mspec/utils/name_map.rb', line 96

def map(hash, constants, mod=nil)
  @seen = {} unless mod

  constants.each do |const|
    name = namespace mod, const
    m = class_or_module name
    next unless m and not @seen[m]
    @seen[m] = true

    ms = m.methods(false).map { |x| x.to_s }
    hash["#{name}."] = ms.sort unless ms.empty?

    ms = m.public_instance_methods(false) +
         m.protected_instance_methods(false)
    ms.map! { |x| x.to_s }
    hash["#{name}#"] = ms.sort unless ms.empty?

    map hash, m.constants, name
  end

  hash
end