class Icomoon::Cli::Survey

Attributes

questions[R]

Public Class Methods

new() click to toggle source
# File lib/icomoon/cli/survey.rb, line 4
def initialize
  @questions = []
end
run() { |survey| ... } click to toggle source
# File lib/icomoon/cli/survey.rb, line 25
def self.run
  survey = new
  yield(survey)
  survey.read!
end

Public Instance Methods

ask(value, name, default = nil) click to toggle source
# File lib/icomoon/cli/survey.rb, line 8
def ask(value, name, default = nil)
  questions << Icomoon::Cli::Question.new(value, name, default)
end
read!() click to toggle source
# File lib/icomoon/cli/survey.rb, line 12
def read!
  Hash.new.tap do |answers|
    questions.each do |q|
      Icomoon::Cli.log "#{'question'.light_black} #{q.name} (#{q.default || 'none'}): "

      answer = (gets || '').chomp
      answer = q.default if /\A[\s]*\z/.match?(answer)

      answers[q.value] = answer
    end
  end
end