Module: Accessibility::PrettyPrinter
- Included in:
- AX::Element
- Defined in:
- lib/accessibility/pretty_printer.rb
Overview
Convenience methods to use when building an #inspect method for
AX::Element and its descendants.
The module only expects three methods in order to operate:
- #attributesreturns a list of available attributes
- #attributereturns the value of a given attribute
- #size_ofreturns the size for an attribute
Instance Method Summary collapse
- 
  
    
      #pp_checkbox(attr)  ⇒ String 
    
    
  
  
  
  
  
  
  
  
  
    Create a string that looks like a labeled check box. 
- 
  
    
      #pp_children  ⇒ String 
    
    
  
  
  
  
  
  
  
  
  
    Create a string that nicely presents the number of children that the receiver has. 
- 
  
    
      #pp_enabled  ⇒ String 
    
    
  
  
  
  
  
  
  
  
  
    Safely create a #pp_checkbox for the KAXEnabledAttribute.
- 
  
    
      #pp_focused  ⇒ String 
    
    
  
  
  
  
  
  
  
  
  
    Safely create a #pp_checkbox for the KAXFocusedAttribute.
- 
  
    
      #pp_identifier  ⇒ String 
    
    
  
  
  
  
  
  
  
  
  
    Create an identifier for the receiver by using various attributes that should make it very easy to identify the element. 
- 
  
    
      #pp_position  ⇒ String 
    
    
  
  
  
  
  
  
  
  
  
    Create a string that succinctly encodes the screen coordinates of the receiver. 
Instance Method Details
#pp_checkbox(attr) ⇒ String
Create a string that looks like a labeled check box. The label is the given attribute, and the check box value will be determined by the value of the attribute.
| 88 89 90 | # File 'lib/accessibility/pretty_printer.rb', line 88 def pp_checkbox attr " #{attr}[#{attribute(attr) ? CHECKMARK : CROSS }]" end | 
#pp_children ⇒ String
Create a string that nicely presents the number of children that the receiver has.
| 71 72 73 74 75 76 77 78 79 | # File 'lib/accessibility/pretty_printer.rb', line 71 def pp_children if attributes.include? :children child_count = size_of :children return " #{child_count} children" if child_count > 1 return ONE_CHILD if child_count == 1 # there are some odd edge cases where 0 children are reported end EMPTY_STRING end | 
#pp_enabled ⇒ String
Safely create a #pp_checkbox for the KAXEnabledAttribute
If the receiver does not have the attribute then an empty string will be returned.
| 99 100 101 102 103 104 105 | # File 'lib/accessibility/pretty_printer.rb', line 99 def pp_enabled if attributes.include? :enabled pp_checkbox(:enabled) else EMPTY_STRING end end | 
#pp_focused ⇒ String
Safely create a #pp_checkbox for the KAXFocusedAttribute
If the receiver does not have the attribute then an empty string will be returned.
| 114 115 116 117 118 119 120 | # File 'lib/accessibility/pretty_printer.rb', line 114 def pp_focused if attributes.include? :focused pp_checkbox(:focused) else EMPTY_STRING end end | 
#pp_identifier ⇒ String
Create an identifier for the receiver by using various attributes that should make it very easy to identify the element.
| 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 | # File 'lib/accessibility/pretty_printer.rb', line 20 def pp_identifier # @note use, or lack of use, of #inspect is intentional for visual effect if attributes.include? :value val = attribute :value if val.kind_of? String return " #{val.inspect}" unless val.empty? else # we assume that nil is not a legitimate value return " value=#{val.inspect}" unless val.nil? end end if attributes.include? :title val = attribute(:title) return " #{val.inspect}" if val && !val.empty? end if attributes.include? :title_ui_element val = attribute :title_ui_element return " #{val.inspect}" if val end if attributes.include? :description val = attribute(:description).to_s return " #{val}" unless val.empty? end if attributes.include? :identifier return " id=#{attribute(:identifier)}" end end | 
#pp_position ⇒ String
Create a string that succinctly encodes the screen coordinates of the receiver.
| 58 59 60 61 62 63 64 | # File 'lib/accessibility/pretty_printer.rb', line 58 def pp_position if attributes.include? :position position = attribute :position return " (#{position.x}, #{position.y})" if position end EMPTY_STRING end |