class Rails::SourceAnnotationExtractor

def find_in(dir)

taken into account. Only files with annotations are included.
Rails::SourceAnnotationExtractor::Annotation.extensions are
with their annotations. Files with extensions registered in
Returns a hash that maps filenames under +dir+ (recursively) to arrays
def find_in(dir)
  results = {}
  Dir.glob("#{dir}/*") do |item|
    next if File.basename(item).start_with?(".")
    if File.directory?(item)
      results.update(find_in(item))
    else
      extension = Annotation.extensions.detect do |regexp, _block|
        regexp.match(item)
      end
      if extension
        pattern = extension.last.call(tag)
        # In case a user-defined pattern returns nothing for the given set
        # of tags, we exit early.
        next unless pattern
        # If a user-defined pattern returns a regular expression, we will
        # wrap it in a PatternExtractor to keep the same API.
        pattern = PatternExtractor.new(pattern) if pattern.is_a?(Regexp)
        annotations = pattern.annotations(item)
        results.update(item => annotations) if annotations.any?
      end
    end
  end
  results
end