class Hval::Result

Public Class Methods

new(result) click to toggle source
# File lib/hval/result.rb, line 4
def initialize(result)
  @success = reduce_to_boolean(result)
end

Public Instance Methods

success?() click to toggle source
# File lib/hval/result.rb, line 8
def success?
  @success
end

Private Instance Methods

reduce_to_boolean(res) click to toggle source
# File lib/hval/result.rb, line 13
def reduce_to_boolean(res)
  case res
  when TrueClass, FalseClass
    return res
  when Array
    res.all? do |result|
      if result.size == 2 #[key, [results]]
        _, results = result
        reduce_to_boolean(results)            
      elsif result.size == 4 #[name, spec, result, given]
        _, _, results, _ = result
        reduce_to_boolean(results)        
      elsif
        raise "Result size #{result.size} not expected: #{result.inspect}"
      end
    end
  else
    raise "Result must be TrueClass, FalseClass or Array: #{res.inspect}"
  end
end