Class: Hyrb::Tasks::Developers::AddToProject
Instance Attribute Summary
Attributes inherited from Hyrb::Task
#env, #pipeline
Instance Method Summary
collapse
Methods inherited from Hyrb::Task
depends, #initialize, prompt, prompts, #run_before
Constructor Details
This class inherits a constructor from Hyrb::Task
Instance Method Details
#list_devs(devs) ⇒ Object
99
100
101
|
# 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) ⇒ Object
103
104
105
|
# 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) ⇒ Object
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
|
# 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
|