class Prj::Finder
Public Class Methods
new(projects_root, options = {})
click to toggle source
# File lib/prj/finder.rb, line 6 def initialize(projects_root, options = {}) @root = File.expand_path(projects_root) @vcs_directories = Array(options[:vcs_directories]) @search_nested_repositories = !!options[:search_nested_repositories] @result = [] end
Public Instance Methods
find_project_directories()
click to toggle source
# File lib/prj/finder.rb, line 13 def find_project_directories return @result unless @result.empty? FastTraverse.traverse(@root, @search_nested_repositories) do |parent_path, child_name| next false unless vcs_directory?(child_name) @result << normalize_path(parent_path) end @result end
Private Instance Methods
normalize_path(path)
click to toggle source
# File lib/prj/finder.rb, line 28 def normalize_path(path) path.sub(@root, "").chomp("/") end
vcs_directory?(directory_name)
click to toggle source
# File lib/prj/finder.rb, line 24 def vcs_directory?(directory_name) @vcs_directories.include? directory_name end