37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
|
# File 'lib/pdk/cli/util/interview.rb', line 37
def run
i = 1
num_questions = @questions.count
@questions.each do |question_name, question|
@name = question_name
@prompt.print "#{pastel.bold(format('[Q %{current_number}/%{questions_total}]', current_number: i, questions_total: num_questions))} "
@prompt.puts pastel.bold(question[:question])
@prompt.puts question[:help] if question.key?(:help)
case question[:type]
when :yes
yes?('-->') do |q|
q.default(question[:default]) if question.key?(:default)
end
when :multi_select
multi_select('-->', per_page: question[:choices].count) do |q|
q.enum ')'
q.default(*question[:default]) if question.key?(:default)
question[:choices].each do |text, metadata|
q.choice text, metadata
end
end
else
ask('-->') do |q|
q.required(question.fetch(:required, false))
q.validate(question[:validate_pattern], question[:validate_message]) if question.key?(:validate_pattern)
q.default(question[:default]) if question.key?(:default)
end
end
i += 1
@prompt.puts ''
end
@answers
rescue READER::InputInterrupt
nil
end
|