Ruby как замаскировать пользовательский ввод, используя указанный c символ? - PullRequest
0 голосов
/ 25 февраля 2020

У меня есть метод, чтобы спросить пользователя пароль, как это:

def ask_user_password
  puts 'Enter your password'
  print '> '
  STDIN.getpass
end

Как только я использую STDIN.getpass, он не отображает пользовательский ввод.

Но вместо этого я хочу напечатать символ * для каждого символа, который вводит пользователь.
Например: ввод пользователя: 123456

Теперь у меня есть

Enter your password
> 

Что я хочу

Enter your password
> ******

1 Ответ

1 голос
/ 26 февраля 2020

Вам нужен этот драгоценный камень: Highline . И ваш код может выглядеть так:

require 'highline/import'

def ask_user_password
  puts 'Enter your password'
  ask("> ") { |q| q.echo =  '*' }
end

Если вы не хотите что-либо выводить, просто измените эхо на false.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...