module Anvil::Task::Projects

Public Instance Methods

change_project(project) click to toggle source
# File lib/anvil/task/projects.rb, line 10
def change_project(project)
  Dir.chdir(project_path(project))
rescue Errno::ENOENT
  log_project_does_not_exists project
end
on_each_project(projects) { |project, project_git| ... } click to toggle source

Runs on_project on an array of projects

@param [Array] projects an array of projects managed by anvil @return [Array] an array with the values returned by each

on_project run
# File lib/anvil/task/projects.rb, line 34
def on_each_project(projects)
  projects.map do |project|
    on_project(project) { |project_git| yield project, project_git }
  end
end
on_project(project) { |git| ... } click to toggle source

Yields a block in which PWD is the folder of a project managed by anvil.

@param [String] project the name of a project managed by anvil @return [Object] anything returned by the yielded block

# File lib/anvil/task/projects.rb, line 21
def on_project(project)
  Dir.chdir(project_path(project)) do
    yield(git)
  end
rescue Errno::ENOENT
  log_project_does_not_exists project
end
project_path(project) click to toggle source
# File lib/anvil/task/projects.rb, line 6
def project_path(project)
  Anvil::Config.base_projects_path + "/#{project}"
end

Protected Instance Methods

git() click to toggle source
# File lib/anvil/task/projects.rb, line 47
def git
  Git.open(Dir.pwd)
end
log_project_does_not_exists(project) click to toggle source
# File lib/anvil/task/projects.rb, line 42
def log_project_does_not_exists(project)
  logger.info "Anvil knows nothing about #{project}."
  logger.info 'Please, check anvil help projects:add first to add the project to anvil.'
end