class AePageObjects::DocumentQuery

Attributes

conditions[R]

Public Class Methods

new(*document_classes, &block) click to toggle source
# File lib/ae_page_objects/document_query.rb, line 31
def initialize(*document_classes, &block)
  @conditions = []

  if document_classes.empty?
    raise ArgumentError, "block expected" if block.nil?
    block.call(self)

    raise ArgumentError, "conditions expected" if @conditions.empty?
  else

    all_documents = document_classes.all? do |document_class|
      document_class.is_a?(Class) && document_class < Document
    end

    if all_documents
      if document_classes.size == 1
        matches(document_classes.first, {}, &block)
      else
        raise ArgumentError, "block unexpected for multiple documents" unless block.nil?

        document_classes.each do |document_class|
          matches(document_class)
        end
      end
    else
      raise ArgumentError, "Expected (Document, document_options)" unless document_classes.size == 2
      raise ArgumentError, "Expected (Document, document_options)" unless (document_classes.first < Document) && document_classes.last.is_a?(Hash)

      matches(document_classes.first, document_classes.last, &block)
    end
  end
end

Public Instance Methods

default_document_class() click to toggle source
# File lib/ae_page_objects/document_query.rb, line 68
def default_document_class
  conditions.first.document_class
end
matches(document_class, conditions = {}, &block_condition) click to toggle source
# File lib/ae_page_objects/document_query.rb, line 64
def matches(document_class, conditions = {}, &block_condition)
  @conditions << Condition.new(document_class, conditions, &block_condition)
end
permitted_types_dump() click to toggle source
# File lib/ae_page_objects/document_query.rb, line 72
def permitted_types_dump
  conditions.map(&:document_class).map(&:name).inspect
end