require 'watir/elements/html_elements'
module Druid
module Elements
class TableRow < Element
#
# Return the Druid::Elements::TableCell for the index provided. Index
# is zero based. If the index provided is a String then it
# will be matched with the text from the columns in the first row.
#
def [](what)
idx = find_index(what)
idx && cell_items[idx]
end
#
# Returns the number of colums in the table
#
def columns
cell_items.size
end
#
# iterator that yields with a Druid::Elements::TableCell
#
def each(&block)
cell_items.each(&block)
end
private
def cell_items
@cell_items ||= element.cells.map do |obj|
Druid::Elements::TableCell.new(obj)
end
end
def find_index(what)
return what if what.is_a? Integer
parent(tag_name: 'table').headers.find_index do |header|
header.text.include? what
end
end
end
Druid::Elements.tag_to_class[:tr] = Druid::Elements::TableRow
end
end