class Gitdocs::Search

Constants

RepoDescriptor
SearchResult

Public Class Methods

new(repositories) click to toggle source

@param [Array<Gitdocs::Repository>] repositories

# File lib/gitdocs/search.rb, line 14
def initialize(repositories)
  @repositories = repositories
end

Public Instance Methods

Private Instance Methods

search_repository(repository, term) click to toggle source

@param [Repository] repository @param [String] term @return [Array<SearchResult>]

# File lib/gitdocs/search.rb, line 34
def search_repository(repository, term)
  return [] if term.nil? || term.empty?

  results = []
  repository.grep(term) do |file, context|
    result = results.find { |s| s.file == file }
    if result
      result.context += ' ... ' + context
    else
      results << SearchResult.new(file, context)
    end
  end
  results
end