# File lib/facter/util/confine.rb, line 37
  def true?
    if @block and not @fact then
      begin
        return !! @block.call
      rescue StandardError => error
        Facter.debug "Confine raised #{error.class} #{error}"
        return false
      end
    end

    unless fact = Facter[@fact]
      Facter.debug "No fact for %s" % @fact
      return false
    end
    value = convert(fact.value)

    return false if value.nil?

    if @block then
      begin
        return !! @block.call(value)
      rescue StandardError => error
        Facter.debug "Confine raised #{error.class} #{error}"
        return false
      end
    end

    return @values.any? do |v| convert(v) === value end
  end