module PageObjectExtensions
  module IndexedProperties
    # should be named TableOfCollections
    module TableOfElements
      include PageObject

      # page-object nests a class definition in the intializer method, which is unnecessary.
      # instead, let's use a separate class.
      def initialize(browser, identifier_list)
        initialize_browser(browser)
        @identifier_list = identifier_list
        @collections_of_elements = []
      end

      def [](index)
        @collections_of_elements[index.to_i] ||= CollectionOfElements.new(@browser, index, @identifier_list)
      end
    end
  end
end
