Module: OmniAI::Tools::Browser::Formatters::InputFormatter

Defined in:
lib/omniai/tools/browser/formatters/input_formatter.rb

Overview

Handles formatting of input elements

Class Method Summary collapse

Class Method Details

.format_basic_line(input, indent) ⇒ Object



17
18
19
20
21
22
23
# File 'lib/omniai/tools/browser/formatters/input_formatter.rb', line 17

def format_basic_line(input, indent)
  result = "#{indent}#{input_type_display(input)}"
  result += input_id_display(input)
  result += input_value_display(input)
  result += input_placeholder_display(input)
  "#{result}\n"
end

.format_input_field(input, indent = "") ⇒ Object



11
12
13
14
15
# File 'lib/omniai/tools/browser/formatters/input_formatter.rb', line 11

def format_input_field(input, indent = "")
  result = format_basic_line(input, indent)
  result += format_selectors_line(input, indent)
  result
end

.format_selector_list(selectors, indent) ⇒ Object



32
33
34
35
36
# File 'lib/omniai/tools/browser/formatters/input_formatter.rb', line 32

def format_selector_list(selectors, indent)
  result = "#{indent}  Stable selectors:\n"
  selectors.each { |sel| result += "#{indent}    - #{sel}\n" }
  "#{result}\n"
end

.format_selectors_line(input, indent) ⇒ Object



25
26
27
28
29
30
# File 'lib/omniai/tools/browser/formatters/input_formatter.rb', line 25

def format_selectors_line(input, indent)
  selectors = SelectorGenerator.generate_stable_selectors(input)
  return "" if selectors.empty?

  format_selector_list(selectors, indent)
end

.input_id_display(input) ⇒ Object



42
43
44
# File 'lib/omniai/tools/browser/formatters/input_formatter.rb', line 42

def input_id_display(input)
  input["id"] ? " (#{input['id']})" : ""
end

.input_placeholder_display(input) ⇒ Object



51
52
53
54
# File 'lib/omniai/tools/browser/formatters/input_formatter.rb', line 51

def input_placeholder_display(input)
  placeholder = input["placeholder"]
  placeholder && !placeholder.empty? ? " [#{placeholder}]" : ""
end

.input_type_display(input) ⇒ Object



38
39
40
# File 'lib/omniai/tools/browser/formatters/input_formatter.rb', line 38

def input_type_display(input)
  (input["type"] || input.name).capitalize
end

.input_value_display(input) ⇒ Object



46
47
48
49
# File 'lib/omniai/tools/browser/formatters/input_formatter.rb', line 46

def input_value_display(input)
  value = input["value"]
  value && !value.empty? ? " = '#{value}'" : ""
end