"Speed date" interview questions
I suggest defining an ask for free-form answers and a choose function for multiple-choice questions.  The choose function can perform validation.

You can use case-when instead of if-else.

def ask(msg)
  puts msg
  gets.chomp
end

def choose(msg, choices)
  loop do
    down_choices = choices.map(&amp;:downcase)
    puts "#{msg} (#{choices.join('/')})" 
    result = gets.chomp.downcase
    return result if down_choices.include?(result)
    puts "That answer is invalid"
  end
end

name = ask "Hello, what's you're name, dude?"
case choose "Are you a boy?", ["yes", "no"] 
when "yes" # boy
  case choose "Do you like soccer #{name}?", ["yes", "no"]
  when "yes" # likes soccer
    case choose "And beer?", ["yes", "no"]
    when "yes" # likes beer
      puts "Nice buddy!"
    else # doesn't likes beer
      puts "Too bad #{name}! But you like soccer!"
    end
  else # doesn't like soccer 
    puts "You're complicated #{name}!!!"
  end
else # girl
  ask "Do you like romantics movies?"
end


Note that nothing is done with the answer to the question, "Do you like romantics movies?".