class Hyrb::Tasks::Developers::AddToProject

Public Instance Methods

list_devs(devs) click to toggle source
# File lib/hyrb/tasks/developers.rb, line 99
def list_devs(devs)
  devs.each {|d| say "#{d.name} <#{d.email}>"}
end
prompt_for_dev(devs) click to toggle source
# File lib/hyrb/tasks/developers.rb, line 103
def prompt_for_dev(devs)
  option_list(devs) { |d, i| "#{i+1}: #{d.name} <#{d.email}>" }
end
run(env) click to toggle source
# File lib/hyrb/tasks/developers.rb, line 77
def run(env)
  added_devs = if env.project.users.try(:any?)
    env.developers.select {|dev| env.project.users.include? dev.email }
  else
    env.developers.select {|dev| dev.role == :admin }
  end

  loop do
    say "Devs with access"
    list_devs(added_devs)

    break unless yes? "Add more devs?"

    dev_list = env.developers - added_devs
    devs = *prompt_for_dev(dev_list)
    added_devs += devs
  end

  env.project.users = added_devs.map(&:email)
  env.project.save!
end