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:
#attributes
returns a list of available attributes#attribute
returns the value of a given attribute#size_of
returns 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 |