Class: Worktool::ProjectManager

Inherits:
Object
  • Object
show all
Defined in:
lib/worktool/project_manager.rb

Instance Method Summary collapse

Constructor Details

#initialize(projects_path) ⇒ ProjectManager



4
5
6
# File 'lib/worktool/project_manager.rb', line 4

def initialize(projects_path)
  @projects_path = projects_path
end

Instance Method Details

#find_project(user_repo) ⇒ Object



26
27
28
29
30
31
# File 'lib/worktool/project_manager.rb', line 26

def find_project(user_repo)
  matches = projects.select do |project|
    project == user_repo
  end
  matches.first if matches
end

#find_project_by_repo(repo) ⇒ Object



19
20
21
22
23
24
# File 'lib/worktool/project_manager.rb', line 19

def find_project_by_repo(repo)
  matches = projects.select do |project|
    project.match(/\/#{repo}$/)
  end
  matches.first if matches
end

#find_repo_path(params) ⇒ Object



8
9
10
11
12
13
14
15
16
17
# File 'lib/worktool/project_manager.rb', line 8

def find_repo_path(params)
  return nil unless params[:repo]
  if params[:user]
    project = find_project(params[:user] + '/' + params[:repo])
  else
    project = find_project_by_repo(params[:repo])
  end
  return nil unless project
  Pathname.new(@projects_path).join(project).to_s
end

#projectsObject



33
34
35
36
37
38
# File 'lib/worktool/project_manager.rb', line 33

def projects
  projects_path = Pathname.new(@projects_path)
  Pathname.glob(projects_path.join('*/*/')).map do |directory|
    directory.relative_path_from(projects_path).to_s
  end
end