class TTY::Prompt::AnswersCollector
Public Class Methods
new(prompt, options = {})
click to toggle source
Initialize answer collector
@api public
# File lib/tty/prompt/answers_collector.rb, line 9 def initialize(prompt, options = {}) @prompt = prompt @answers = options.fetch(:answers) { {} } end
Public Instance Methods
add_answer(answer)
click to toggle source
@api public
# File lib/tty/prompt/answers_collector.rb, line 46 def add_answer(answer) @answers[@name] = answer end
call(&block)
click to toggle source
Start gathering answers
@return [Hash]
the collection of all answers
@api public
# File lib/tty/prompt/answers_collector.rb, line 20 def call(&block) instance_eval(&block) @answers end
create_collector()
click to toggle source
@api public
# File lib/tty/prompt/answers_collector.rb, line 41 def create_collector self.class.new(@prompt) end
key(name, &block)
click to toggle source
Create answer entry
@example
key(:name).ask('Name?')
@api public
# File lib/tty/prompt/answers_collector.rb, line 31 def key(name, &block) @name = name if block answer = create_collector.(&block) add_answer(answer) end self end
Private Instance Methods
method_missing(method, *args, &block)
click to toggle source
@api private
# File lib/tty/prompt/answers_collector.rb, line 53 def method_missing(method, *args, &block) answer = @prompt.public_send(method, *args, &block) add_answer(answer) end