# File lib/camping-abingo.rb, line 412
  def self.human!
    Abingo.cache.fetch("Abingo::is_human(#{Abingo.identity})",  {:expires_in => Abingo.expires_in(true)}) do
      #Now that we know the user is human, score participation for all their tests.  (Further participation will *not* be lazy evaluated.)

      #Score all tests which have been deferred.
      participating_tests = Abingo.cache.read("Abingo::participating_tests::#{Abingo.identity}") || []

      #Refresh cache expiry for this user to match that of known humans.
      if (@@options[:expires_in_for_bots] && !participating_tests.blank?)
        Abingo.cache.write("Abingo::participating_tests::#{Abingo.identity}", participating_tests, {:expires_in => Abingo.expires_in(true)})
      end
      
      participating_tests.each do |test_name|
        Alternative.score_participation(test_name)
        if conversions = Abingo.cache.read("Abingo::conversions(#{Abingo.identity},#{test_name}")
          conversions.times { Alternative.score_conversion(test_name) }
        end
      end
      true #Marks this user as human in the cache.
    end
  end