class HighLine::Question::AnswerConverter

It provides all answer conversion flow.

def convert

Returns:
  • (Object) - the converted answer.
def convert
  self.answer = convert_by_answer_type if answer_type
  answer
end

def convert_by_answer_type

def convert_by_answer_type
  if answer_type.respond_to? :parse
    answer_type.parse(answer)
  elsif answer_type.is_a? Class
    send("to_#{answer_type.name.downcase}")
  else
    send("to_#{answer_type.class.name.downcase}")
  end
end

def initialize(question)

Parameters:
  • question (Question) --
def initialize(question)
  @question = question
end

def to_array

Returns:
  • (Array) - answer converted to an Array
def to_array
  self.answer = choices_complete(answer)
  answer.last
end

def to_file

Returns:
  • (File) - answer converted to a File
def to_file
  self.answer = choices_complete(answer)
  File.open(File.join(directory.to_s, answer.last))
end

def to_float

Returns:
  • (Float) - answer converted to a Float
def to_float
  Kernel.send(:Float, answer)
end

def to_integer

Returns:
  • (Integer) - answer converted to an Integer
def to_integer
  Kernel.send(:Integer, answer)
end

def to_pathname

Returns:
  • (Pathname) - answer converted to an Pathname
def to_pathname
  self.answer = choices_complete(answer)
  Pathname.new(File.join(directory.to_s, answer.last))
end

def to_proc

Returns:
  • (Proc) - answer converted to an Proc
def to_proc
  answer_type.call(answer)
end

def to_regexp

Returns:
  • (Regexp) - answer converted to a Regexp
def to_regexp
  Regexp.new(answer)
end

def to_string

Returns:
  • (HighLine::String) - answer converted to a HighLine::String
def to_string
  HighLine::String(answer)
end

def to_symbol

Returns:
  • (Symbol) - answer converted to an Symbol
def to_symbol
  answer.to_sym
end