module UnderOs::UI::Traversing
Public Instance Methods
children(css_rule=nil)
click to toggle source
# File lib/under_os/ui/utils/traversing.rb, line 32 def children(css_rule=nil) result = @_.subviews.map{|v| UnderOs::UI::View.new(v) if v}.compact css_rule ? result.select{|v| v.matches(css_rule)} : result end
empty?()
click to toggle source
# File lib/under_os/ui/utils/traversing.rb, line 41 def empty? @_.subviews.empty? end
find(css_rule)
click to toggle source
# File lib/under_os/ui/utils/traversing.rb, line 6 def find(css_rule) [].tap do |result| children.each do |view| result << view if view.matches(css_rule) view.find(css_rule).each do |sub| result << sub end end end end
first(css_rule)
click to toggle source
# File lib/under_os/ui/utils/traversing.rb, line 2 def first(css_rule) find(css_rule)[0] end
matches(css_rule)
click to toggle source
# File lib/under_os/ui/utils/traversing.rb, line 17 def matches(css_rule) UnderOs::Page::StylesMatcher.new(css_rule).match(self) end
parent(css_rule=nil)
click to toggle source
# File lib/under_os/ui/utils/traversing.rb, line 21 def parent(css_rule=nil) if ! css_rule UnderOs::UI::View.new(@_.superview) if @_.superview else parent = self while parent.is_a?(UnderOs::UI::View) && (parent = parent.parent) return parent if parent.matches(css_rule) end end end
siblings(css_rule=nil)
click to toggle source
# File lib/under_os/ui/utils/traversing.rb, line 37 def siblings(css_rule=nil) parent ? (parent.children(css_rule) - [self]) : [] end