Я пытаюсь выяснить, как сохранить html-таблицу статистики накопителей в базе данных, но разработчики немного умен и начали использовать gif-ы для представления статистики pass / fail / health
Вот фрагмент того, что у меня есть:
<tr class="status">
<td class="status"><img border="0" src="/tick_green.gif"></td>
<td class="status">8</td>
<td class="status">Ready</td>
<td class="status"><a href="/cgi-bin/status_drive?cont=0&dylan=0&drive=8"><img border="0" src="/bar10.gif"></a></td>
<td class="status">SEAGATE ST3146807FC</td>
<td class="status">10000 RPM</td>
<td class="status">3HY61AG9</td>
<td class="status">XR12</td>
<td class="status">286749488</td>
<td class="status"> 28.0°C</td>
<td class="status" style="background-color: #00fa00"> 
</td>
**
А вот несколько рубинов, которые я написал до сих пор, чтобы убрать теги:
table = page.parser.xpath('//table/caption[contains(.,"Drive")]/..')
table.xpath('//table//tr').each do |row|
row.xpath('td').each do |cell|
puts cell.to_html.gsub(/<a[^>]+>/,'').gsub(/<td[^>]+>/,'').gsub(/<\/td[^>]*>/,'').gsub(/<\/a[^>]*>/,'')
#puts cell.text
end
end
Теперь я могу получить полурациональный вывод
<img border="0" src="/tick_green.gif">
15
Ready
<img border="0" src="/bar10.gif">
SEAGATE ST3146807FC
10000 RPM
3HY61ASW
XR12
286749488
29.0°C
 
Но я хочу заменить пару других элементов ячейки другими битами
Например, tick_green также может быть «/cross_red.gif» или «/caution.gif», который я хочу заменить обычным текстом, аналогично img bar10.gif, который я хочу заменить просто текстом «10»
Лучше ли придумать целую кучу значений для всех моих особых случаев?