Sha256: a7f444d44f3de77985780e50fa6e5ee26d730e52853da1f79cc318278478d3d1
Contents?: true
Size: 1.53 KB
Versions: 2
Compression:
Stored size: 1.53 KB
Contents
module PageObject module Elements class Table < Element include Enumerable # # iterator that yields with a PageObject::Elements::TableRow # # @return [PageObject::Elements::TableRow] # def each(&block) row_items.each(&block) end alias_method :first_row, :first # # return the last row # # @return PageObject::Elements::TableRow # def last_row self[-1] end # # Return the PageObject::Elements::TableRow for the index provided. Index # is zero based. If the index provided is a String then it # will be matched with the text from any column. The text can be a substring of the full column text. # # @return [PageObject::Elements::TableRow] # def [](what) idx = find_index(what) idx && row_items[idx] end # # Returns the number of rows in the table. # def rows row_items.size end protected def row_items meth = strategy == :descendants ? :trs : :rows @row_items ||= element.send(meth).map do |obj| ::PageObject::Elements::TableRow.new(obj) end end def strategy :children end def find_index(what) return what if what.is_a? Integer row_items.find_index do |row| row.cell(text: /#{Regexp.escape(what)}/).exist? end end end ::PageObject::Elements.tag_to_class[:table] = ::PageObject::Elements::Table end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
page-object-2.2.3 | lib/page-object/elements/table.rb |
page-object-2.2.2 | lib/page-object/elements/table.rb |