class Idcf::Cli::Lib::Util::Input
input
Public Class Methods
qa(title, setting, nd = '')
click to toggle source
qa
@param title [String] @param setting [Hash] @param nd [String] @return [String]
# File lib/idcf/cli/lib/util/input.rb, line 14 def qa(title, setting, nd = '') loop do v = qa_setting_list(setting) qa_puts_question(title, nd, v) result = qa_answer_input(v, nd) return result unless result.empty? end end
qa_answer_input(list, nd = '')
click to toggle source
@param list [Array] @param nd [String] @return [String]
# File lib/idcf/cli/lib/util/input.rb, line 28 def qa_answer_input(list, nd = '') loop do res = STDIN.gets.strip result = res.empty? ? nd : res return result if qa_answer?(result, list) puts "from this [#{list.join('/')}]" '' end end
Protected Class Methods
qa_answer?(val, list)
click to toggle source
qa_answer?
@param val [String] @param list [Array] @return [Boolean]
# File lib/idcf/cli/lib/util/input.rb, line 66 def qa_answer?(val, list) return true if list.nil? || list.empty? return true if Regexp.new("\\A(#{list.join('|')})\\Z") =~ val false end
qa_puts_question(title, nd, set_list)
click to toggle source
@param title [String] @param nd [String] @param set_list [Array] @return nil
# File lib/idcf/cli/lib/util/input.rb, line 46 def qa_puts_question(title, nd, set_list) set_s = set_list.blank? ? '' : "(#{set_list.join('/')})" puts "#{title}#{set_s}[#{nd.empty? ? 'NONE' : nd}]" nil end
qa_setting_list(setting)
click to toggle source
@param setting [Hash] @return [Array]
# File lib/idcf/cli/lib/util/input.rb, line 56 def qa_setting_list(setting) v = setting.class == Hash ? setting[:list] : nil v.nil? ? [] : v end