class NameMap
Constants
- EXCLUDED
- MAP
Public Class Methods
new(filter=false)
click to toggle source
# File lib/mspec/utils/name_map.rb, line 74 def initialize(filter=false) @seen = {} @filter = filter end
Public Instance Methods
class_or_module(c)
click to toggle source
# File lib/mspec/utils/name_map.rb, line 84 def class_or_module(c) const = const_lookup(c) filtered = @filter && EXCLUDED.include?(const.name) return const if Module === const and not filtered rescue NameError end
dir_name(c, base)
click to toggle source
# File lib/mspec/utils/name_map.rb, line 119 def dir_name(c, base) return File.join(base, 'exception') if exception? c c.split('::').inject(base) do |dir, name| name.gsub!(/Class/, '') unless name == 'Class' File.join dir, name.downcase end end
exception?(name)
click to toggle source
# File lib/mspec/utils/name_map.rb, line 79 def exception?(name) return false unless c = class_or_module(name) c == Errno or c.ancestors.include? Exception end
file_name(m, c)
click to toggle source
# File lib/mspec/utils/name_map.rb, line 128 def file_name(m, c) if MAP.key?(m) name = MAP[m].is_a?(Hash) ? MAP[m][c.split('::').last] || MAP[m][:default] : MAP[m] else name = m.gsub(/[?!=]/, '') end "#{name}_spec.rb" end
map(hash, constants, mod=nil)
click to toggle source
# 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
namespace(mod, const)
click to toggle source
# File lib/mspec/utils/name_map.rb, line 91 def namespace(mod, const) return const.to_s if mod.nil? or %w[Object Class Module].include? mod "#{mod}::#{const}" end