code: def reduce_to_basics rawnum, valid_sizes = nil
        return nil if rawnum.nil?
  
        num = extractNumber rawnum
  
        # Does it even look like a number?
        return nil unless num
  
        # Return what we've got if we don't care about the size
        return num unless valid_sizes
  
        # Check for valid size(s)
        [valid_sizes].flatten.each do |s|
          return num if num.size == s
        end
  
        # Didn't check out size-wise. Return nil
        return nil
      end
docs: Given any string, extract what looks like the most likely ISBN/ISSN
   of the given size(s), or nil if nothing matches at the correct size.
   @param [String] rawnum The raw string containing (hopefully) an ISSN/ISBN
   @param [Integer, Array<Integer>, nil] valid_sizes An integer or array of integers of valid sizes
   for this type (e.g., 10 or 13 for ISBN, 8 for ISSN)
   @return [String,nil] the reduced and verified number, or nil if there's no match at the right size