Чтобы проверить ввод пользователя для пустота , не следует использовать помощники ==
и / или include?
. Нужно использовать современное регулярное выражение, которое соответствует пробелам .
К вашему сведению: в спецификациях UTF-8 содержится более десяти пробельных символов, включая, но не ограничиваясь:
spaces = {
space_medium_mathematical_space: " ",
spaces_em_quad: " ",
spaces_em_space: " ",
spaces_en_quad: " ",
spaces_en_space: " ",
spaces_figure_space: " ",
spaces_four_per_em_space: " ",
spaces_hair_space: " ",
spaces_punctuation_space: " ",
spaces_six_per_em_space: " ",
spaces_thin_space: " ",
spaces_three_per_em_space: " "
}
Чтобы соответствовать им, используется \p{Space}
matcher.
spaces.values.map { |s| s == ' ' }
#⇒ [false, false, false, false, false, false,
# false, false, false, false, false, false]
Но:
spaces.values.map(&/\A\p{Space}*\z/.method(:match?))
#⇒ [true, true, true, true, true, true,
# true, true, true, true, true, true]