require 'viator/version'

# Easy and Clean Error Handler
class Viator
  attr_writer :value
  attr_reader :errors

  class Errors < Array
  end

  def initialize
    @errors = Errors.new
    @value = nil
  end

  def success?
    @errors.length.zero?
  end

  def failure?
    !success?
  end

  def report(str)
    @errors.push(str)
  end

  def count
    @errors.length
  end

  def reset
    @errors = []
  end

  def value
    @value if success?
  end
end