Sha256: 8aa506b90359b019bd94653f5940b88e7f8d26cc3ef02319c03587c2b8eab290
Contents?: true
Size: 1.32 KB
Versions: 4
Compression:
Stored size: 1.32 KB
Contents
# encoding: utf-8 module Imap::Backup::Configuration class Asker < Struct.new(:highline) EMAIL_MATCHER = /^[A-Z0-9._%+-]+@[A-Z0-9.-]+\.[A-Z]{2,4}$/i def email(default = '') highline.ask('email address: ') do |q| q.default = default q.readline = true q.validate = EMAIL_MATCHER q.responses[:not_valid] = 'Enter a valid email address ' end end def password password = highline.ask('password: ') { |q| q.echo = false } confirmation = highline.ask('repeat password: ') { |q| q.echo = false } if password != confirmation return nil unless highline.agree("the password and confirmation did not match.\nContinue? (y/n) ") return self.password end password end def backup_path(default, validator) highline.ask('backup directory: ') do |q| q.default = default q.readline = true q.validate = validator q.responses[:not_valid] = 'Choose a different directory ' end end def self.email(default = '') new(Setup.highline).email(default) end def self.password new(Setup.highline).password end def self.backup_path(default, validator) new(Setup.highline).backup_path(default, validator) end end end
Version data entries
4 entries across 4 versions & 1 rubygems