def ask
      # First, deliver all the prompts that don't have
      # any prerequisites.
      @prompts.reject { |p| p.prereqs }.each do |p|
        _deliver_prompt(p)
      end

      # After the "non-prerequisite" prompts are delivered,
      # deliver any that require prerequisites.
      @prompts.select { |p| p.prereqs }.each do |p|
        _deliver_prompt(p) if _prereqs_fulfilled?(p)
      end
    end
def ask
      # First, deliver all the prompts that don't have
      # any prerequisites.
      @prompts.reject { |p| p.prereqs }.each do |p|
        _deliver_prompt(p)
      end

      # After the "non-prerequisite" prompts are delivered,
      # deliver any that require prerequisites.
      @prompts.select { |p| p.prereqs }.each do |p|
        _deliver_prompt(p) if _prereqs_fulfilled?(p)
      end
    end
Reads prompt data from and stores it.
 @param [<String, Hash, Array>] data Filepath to YAML, Hash, or Array
 @param [Configurator] configurator Source of defailt values
 @return [void]
 Runs through all of the prompt questions and collects
 answers from the user. Note that all questions w/o
 prerequisites are examined first; once those are
 complete, questions w/ prerequisites are examined.
 @return [void]