class Capybara::UI::Table::Columns

Attributes

parent[R]

Public Class Methods

new(parent) click to toggle source
# File lib/capybara/ui/widgets/table.rb, line 31
def initialize(parent)
  @parent = parent
end

Public Instance Methods

[](header_or_index) click to toggle source
# File lib/capybara/ui/widgets/table.rb, line 35
def [](header_or_index)
  case header_or_index
  when Integer
    values_by_index(header_or_index)
  when String
    values_by_header(header_or_index)
  else
    raise TypeError,
          "can't convert #{header_or_index.inspect} to Integer or String"
  end
end
each(&block) click to toggle source
# File lib/capybara/ui/widgets/table.rb, line 47
def each(&block)
  parent.each(&block)
end

Private Instance Methods

find_header_index(header) click to toggle source
# File lib/capybara/ui/widgets/table.rb, line 63
def find_header_index(header)
  parent.widget(:header_row).value.find_index(header) or
    raise ArgumentError, "header not found: #{header.inspect}"
end
values_by_header(header) click to toggle source
# File lib/capybara/ui/widgets/table.rb, line 59
def values_by_header(header)
  values_by_index(find_header_index(header))
end
values_by_index(index) click to toggle source
# File lib/capybara/ui/widgets/table.rb, line 55
def values_by_index(index)
  parent.rows.transpose[index]
end