class HighLine::Question

def confirm_question(highline)

Returns:
  • (String) - {#confirm} rendered as a template if it is a String
  • (String) - default "Are you sure?" if {#confirm} is +true+

Parameters:
  • highline (HighLine) -- context
def confirm_question(highline)
  if confirm == true
    "Are you sure?  "
  elsif confirm.is_a?(Proc)
    confirm.call(answer)
  else
    # evaluate ERb under initial scope, so it will have
    # access to question and answer
    template = if ERB.instance_method(:initialize).parameters.assoc(:key) # Ruby 2.6+
      ERB.new(confirm, trim_mode: "%")
    else
      ERB.new(confirm, nil, "%")
    end
    template_renderer = TemplateRenderer.new(template, self, highline)
    template_renderer.render
  end
end