lib/page-object/elements/table.rb in page-object-2.2.6 vs lib/page-object/elements/table.rb in page-object-2.3.0
- old
+ new
@@ -1,85 +1,85 @@
-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
-
- #
- # Returns the Array of values(String) in a column 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 header. The text can be a substring of the full header text.
- #
- def column_values(what)
- idx = find_index_of_header(what)
- idx && row_items.drop(1).collect { |row| row.cell(index: idx).text }
- 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_of_header(what)
- return what if what.is_a? Integer
- row_items[0].cells.find_index do |cell|
- cell.text.include? Regexp.escape(what)
- end
- 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
+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
+
+ #
+ # Returns the Array of values(String) in a column 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 header. The text can be a substring of the full header text.
+ #
+ def column_values(what)
+ idx = find_index_of_header(what)
+ idx && row_items.drop(1).collect { |row| row.cell(index: idx).text }
+ 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_of_header(what)
+ return what if what.is_a? Integer
+ row_items[0].cells.find_index do |cell|
+ cell.text.include? Regexp.escape(what)
+ end
+ 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