Module: OmniAI::Tools::Browser::Formatters::ElementFormatter
- Defined in:
- lib/omniai/tools/browser/formatters/element_formatter.rb
Overview
Handles formatting of HTML elements for display with data entry focus
Class Method Summary collapse
- .format_element_attributes(element) ⇒ Object
- .format_matching_elements(elements, text, _context_size = nil) ⇒ Object
-
.format_single_element(element, index, context_size) ⇒ Object
Keep existing methods for backward compatibility.
- .get_parent_context(element, context_size) ⇒ Object
Class Method Details
.format_element_attributes(element) ⇒ Object
26 27 28 29 30 31 32 33 34 |
# File 'lib/omniai/tools/browser/formatters/element_formatter.rb', line 26 def format_element_attributes(element) result = "" result += "ID: #{element['id']}\n" if element["id"] result += "Classes: #{element['class']}\n" if element["class"] %w[href src alt type value placeholder].each do |attr| result += "#{attr}: #{element[attr]}\n" if element[attr] && !element[attr].empty? end result end |
.format_matching_elements(elements, text, _context_size = nil) ⇒ Object
11 12 13 14 |
# File 'lib/omniai/tools/browser/formatters/element_formatter.rb', line 11 def format_matching_elements(elements, text, _context_size = nil) grouped = Elements::ElementGrouper.group_for_data_entry(elements, text) DataEntryFormatter.format_groups(grouped, elements.size, text) end |
.format_single_element(element, index, context_size) ⇒ Object
Keep existing methods for backward compatibility
17 18 19 20 21 22 23 24 |
# File 'lib/omniai/tools/browser/formatters/element_formatter.rb', line 17 def format_single_element(element, index, context_size) result = "--- Element #{index + 1} ---\n" result += "Tag: #{element.name}\n" result += format_element_attributes(element) result += get_parent_context(element, context_size) if context_size.positive? result += "HTML: #{element.to_html}\n\n" result end |
.get_parent_context(element, context_size) ⇒ Object
36 37 38 39 40 41 42 43 44 45 46 47 |
# File 'lib/omniai/tools/browser/formatters/element_formatter.rb', line 36 def get_parent_context(element, context_size) result = "" parent = element.parent context_count = 0 while parent && context_count < context_size attrs = parent.attributes.map { |name, attr| " #{name}=\"#{attr.value}\"" }.join result += "Parent #{context_count + 1}: <#{parent.name}#{attrs}>\n" parent = parent.parent context_count += 1 end result end |