module Cliprompt

Constants

MSG_CHOSE_A_NUMBER
MSG_CHOSE_IN_LIST
MSG_INPUT_A_NUMBER
MSG_MANDATORY_TEXT
MSG_YES_OR_NO
VERSION

Public Instance Methods

ask(question, *options) click to toggle source

interactive setup of option

# File lib/cliprompt.rb, line 17
def ask(question, *options)
  if options[0].class == Optionset
    opts = options[0]
  else
    opts = Optionset.new(*options)
  end
  output.print "#{question} #{opts.display}"
  answer = input.gets.chomp
  output.flush
  opts.validate(question, answer)
end
guess(env, question, *options) click to toggle source

if environment var is set, use it, otherwise, ask for a value

# File lib/cliprompt.rb, line 30
def guess(env, question, *options)
  opts = Optionset.new(*options)
  if ENV[env]
    opts.validate(question, ENV[env])
  else
    ask question, opts
  end
end
input() click to toggle source

defaults to STDIN

# File lib/cliprompt.rb, line 58
def input
  @@input ||= STDIN
end
output() click to toggle source

defaults to STDOUT

# File lib/cliprompt.rb, line 63
def output
  @@output ||= STDOUT
end
say(message) click to toggle source

output a message message - string to output

# File lib/cliprompt.rb, line 41
def say(message)
  output.puts message
end
setio(input, output) click to toggle source

makes possible to set input and output

# File lib/cliprompt.rb, line 52
def setio(input, output)
  @@input = input
  @@output = output
end
shout(message) click to toggle source

paints a message in bold and red and output it message - string to paint

# File lib/cliprompt.rb, line 47
def shout(message)
  output.puts Paint[message, :bold, :red ]
end