def update(request)
      if options[:multiple]
        found_categories = request.every(options[:category])
        found_values     = request.every(options[:value])
        fail 'Capture mismatch for multiple values in a request' unless found_categories.length == found_values.length

        found_categories.each_with_index do |cat, index|
          update_statistics(cat, found_values[index]) if cat && found_values[index].is_a?(Numeric)
        end
      else
        category = @categorizer.call(request)
        value    = @valueizer.call(request)
        update_statistics(category, value) if (value.is_a?(Numeric) || value.is_a?(Array)) && category
      end
    end
def update(request)
      if options[:multiple]
        found_categories = request.every(options[:category])
        found_values     = request.every(options[:value])
        fail 'Capture mismatch for multiple values in a request' unless found_categories.length == found_values.length

        found_categories.each_with_index do |cat, index|
          update_statistics(cat, found_values[index]) if cat && found_values[index].is_a?(Numeric)
        end
      else
        category = @categorizer.call(request)
        value    = @valueizer.call(request)
        update_statistics(category, value) if (value.is_a?(Numeric) || value.is_a?(Array)) && category
      end
    end
Get the value information from the request and store it in the respective categories.

 If a request can contain multiple usable values for this tracker, the :multiple option
 should be set to true. In this case, all the values and respective categories will be
 read from the request using the #every method from the fields given in the :value and
 :category option.

 If the request contains only one suitable value and the :multiple is not set, it will
 read the single value and category from the fields provided in the :value and :category
 option, or calculate it with any lambda procedure that is assigned to these options. The
 request will be passed to procedure as input for the calculation.

 @param [RequestLogAnalyzer::Request] request The request to get the information from.