class IDRAC::FirmwareCatalog
def match_component(firmware_name, catalog_name)
def match_component(firmware_name, catalog_name) # Normalize names for comparison catalog_name_lower = catalog_name.downcase.strip firmware_name_lower = firmware_name.downcase.strip # 1. Direct substring match return true if catalog_name_lower.include?(firmware_name_lower) || firmware_name_lower.include?(catalog_name_lower) # 2. Special case for BIOS return true if catalog_name_lower.include?("bios") && firmware_name_lower.include?("bios") # 3. Check identifiers firmware_identifiers = extract_identifiers(firmware_name) catalog_identifiers = extract_identifiers(catalog_name) return true if (firmware_identifiers & catalog_identifiers).any? # 4. Special case for network adapters if (firmware_name_lower.include?("ethernet") || firmware_name_lower.include?("network")) && (catalog_name_lower.include?("ethernet") || catalog_name_lower.include?("network")) return true end # No match found false end