module RepoFinder
Public Class Methods
repos_in_or_below(directory)
click to toggle source
# File lib/repos_report/repo_finder.rb, line 6 def repos_in_or_below(directory) repos_in(directory) + repos_in_subdirectories_of(directory) end
Private Class Methods
contains_repo?(directory_path)
click to toggle source
# File lib/repos_report/repo_finder.rb, line 36 def contains_repo?(directory_path) Dir.glob("#{directory_path}/.git").any? end
folders_with_repos_in(directory)
click to toggle source
# File lib/repos_report/repo_finder.rb, line 18 def folders_with_repos_in(directory) directories = subdirectories_in(directory) directories.select { |d| contains_repo?(d) } end
folders_without_repos_in(directory)
click to toggle source
# File lib/repos_report/repo_finder.rb, line 31 def folders_without_repos_in(directory) directories = subdirectories_in(directory) directories.delete_if { |d| contains_repo?(d) } end
repos_in(directory)
click to toggle source
# File lib/repos_report/repo_finder.rb, line 14 def repos_in(directory) folders_with_repos_in(directory).map { |d| Repo.new(d) } end
repos_in_subdirectories_of(directory)
click to toggle source
# File lib/repos_report/repo_finder.rb, line 23 def repos_in_subdirectories_of(directory) subdirectories = folders_without_repos_in(directory) subdirectories.reduce([]) do |repos, subdirectory| repos + repos_in_or_below(subdirectory) end end
subdirectories_in(directory)
click to toggle source
# File lib/repos_report/repo_finder.rb, line 40 def subdirectories_in(directory) Dir.glob("#{directory}/*") end