class IDRAC::FirmwareCatalog
def extract_identifiers(name)
def extract_identifiers(name) return [] unless name identifiers = [] # Extract model numbers like X520, I350, etc. model_matches = name.scan(/[IX]\d{3,4}/) identifiers.concat(model_matches) # Extract PERC model like H730 perc_matches = name.scan(/[HP]\d{3,4}/) identifiers.concat(perc_matches) # Extract other common identifiers if name.include?("NIC") || name.include?("Ethernet") || name.include?("Network") identifiers << "NIC" end if name.include?("PERC") || name.include?("RAID") identifiers << "PERC" # Extract PERC model like H730 perc_match = name.match(/PERC\s+([A-Z]\d{3})/) identifiers << perc_match[1] if perc_match end if name.include?("BIOS") identifiers << "BIOS" end if name.include?("iDRAC") || name.include?("IDRAC") || name.include?("Remote Access Controller") identifiers << "iDRAC" end if name.include?("Power Supply") || name.include?("PSU") identifiers << "PSU" end if name.include?("Lifecycle Controller") identifiers << "LC" end if name.include?("CPLD") identifiers << "CPLD" end identifiers end