def convert( answer_string )
if @answer_type.nil?
answer_string
elsif [Float, Integer, String].include?(@answer_type)
Kernel.send(@answer_type.to_s.to_sym, answer_string)
elsif @answer_type == Symbol
answer_string.to_sym
elsif @answer_type == Regexp
Regexp.new(answer_string)
elsif @answer_type.is_a?(Array) or [File, Pathname].include?(@answer_type)
choices = selection
choices.extend(OptionParser::Completion)
answer = choices.complete(answer_string)
if answer.nil?
raise NoAutoCompleteMatch
end
if @answer_type.is_a?(Array)
answer.last
elsif @answer_type == File
File.open(File.join(@directory.to_s, answer.last))
else
Pathname.new(File.join(@directory.to_s, answer.last))
end
elsif [Date, DateTime].include?(@answer_type) or @answer_type.is_a?(Class)
@answer_type.parse(answer_string)
elsif @answer_type.is_a?(Proc)
@answer_type[answer_string]
end
end