allowed
не аllowed
;у вас есть две разные переменные. В частности, первая буква отличается: первая переменная имеет «LATIN SMALL LETTER A» (U + 0061), вторая имеет «CYRILLIC SMALL LETTER A» (U + 0430). Глифы либо похожи, либо идентичны в большинстве (всех?) Шрифтов. Ваш код, таким образом, эквивалентен:
ALLOWED_TARGETS = ["dresden", "paris", "vienna"]
def missile_launch_allowed(target, secret_key)
first = true
second = false if secret_key != 1234
first = false unless ALLOWED_TARGETS.include?(target)
first
end
puts(missile_launch_allowed("dresden", 9999))
Если переменные переименованы несколько более разумно, должно быть очевидно, почему вы получаете именно тот результат, который вы получили.