class Modloc::Locator
Locator
for a given module or class
Public Class Methods
new(mod)
click to toggle source
Create a new locator for a module or class @param mod [Module, Class]
# File lib/modloc/locator.rb, line 6 def initialize(mod) @mod = mod end
Public Instance Methods
find()
click to toggle source
Finds all the locations of a given module or class @return [Array]
# File lib/modloc/locator.rb, line 12 def find valid_sources.reduce([]) do |locations, source| locations + source.locate_all(source_regex) end end
Private Instance Methods
files()
click to toggle source
# File lib/modloc/locator.rb, line 28 def files $LOADED_FEATURES.map { |f| Source.new(f) } end
ruby_files()
click to toggle source
# File lib/modloc/locator.rb, line 24 def ruby_files files.select { |file| file.ext == '.rb' } end
source_regex()
click to toggle source
# File lib/modloc/locator.rb, line 32 def source_regex rxp = @mod.name.split('::').each_with_index.map do |name, index| group = 'module |class ' group << '|::' unless index == 0 "(#{group})#{name}" end.join('(\s*#.*\n)*\s*') /#{rxp}/ end
valid_sources()
click to toggle source
# File lib/modloc/locator.rb, line 20 def valid_sources ruby_files.select { |file| file.strip =~ source_regex } end