class HTML::Selector

def only_child(of_type)

elements of its type.
Creates a only child lambda. Pass +of-type+ to only look at
def only_child(of_type)
  lambda do |element|
    # Element must be inside parent element.
    return false unless element.parent && element.parent.tag?
    name = of_type ? element.name : nil
    other = false
    for child in element.parent.children
      # Skip text nodes/comments.
      if child.tag? && (name == nil || child.name == name)
        unless child.equal?(element)
          other = true
          break
        end
      end
    end
    !other
  end
end