module PubliSci::Interactive
Public Instance Methods
interact(message, default, options=nil) { |str| ... }
click to toggle source
take message, options, defaults. can be passed block to handle default as well
# File lib/publisci/dataset/interactive.rb, line 6 def interact(message, default, options=nil) puts message + " (#{default})\n[#{options}]" str = gets.chomp if str.size > 0 if options if str.split(',').all?{|s| Integer(s) rescue nil} str.split(',').map(&:to_i).map{|i| options[i]} else str.split(',').each{|s| raise "unkown selection #{s}" unless options.include? s.strip} str.split(',').map(&:strip) end else str end elsif block_given? yield str else default end end