# File lib/simp/cli/config/questionnaire.rb, line 52
  def process_item item
    item.skip_query = true if @options[ :noninteractive ] >= NONINTERACTIVE
    if @options.fetch( :fail_on_missing_answers, false )
      item.fail_on_missing_answer = true
    end

    if @options[ :noninteractive ] == INTERACTIVE
      item.query
    else
      value = item.default_value_noninteractive

      if item.validate( value )
        item.value = value
        item.print_summary if @options.fetch( :verbose ) >= 0
      else
        # present an interactive prompt for invalid answers unless '-ff'
        if @options.fetch( :noninteractive ) >= REALLY_NONINTERACTIVE
          raise "FATAL: '#{item.value}' is an invalid answer for '#{item.key}'"
        else
          # alert user that the value is wrong
          print_invalid_item_error item
          item.skip_query = false
          value = item.query
        end
      end
    end
    item.safe_apply
  end