Class: AePageObjects::DocumentQuery
- Inherits:
- 
      Object
      
        - Object
- AePageObjects::DocumentQuery
 
- Defined in:
- lib/ae_page_objects/document_query.rb
Defined Under Namespace
Classes: Condition
Instance Attribute Summary collapse
- 
  
    
      #conditions  ⇒ Object 
    
    
  
  
  
  
    
      readonly
    
    
  
  
  
  
  
  
    Returns the value of attribute conditions. 
Instance Method Summary collapse
- #default_document_class ⇒ Object
- 
  
    
      #initialize(*document_classes, &block)  ⇒ DocumentQuery 
    
    
  
  
  
    constructor
  
  
  
  
  
  
  
    A new instance of DocumentQuery. 
- #matches(document_class, conditions = {}, &block_condition) ⇒ Object
- #permitted_types_dump ⇒ Object
Constructor Details
#initialize(*document_classes, &block) ⇒ DocumentQuery
Returns a new instance of DocumentQuery.
| 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 | # 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 | 
Instance Attribute Details
#conditions ⇒ Object (readonly)
Returns the value of attribute conditions.
| 29 30 31 | # File 'lib/ae_page_objects/document_query.rb', line 29 def conditions @conditions end | 
Instance Method Details
#default_document_class ⇒ Object
| 68 69 70 | # 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) ⇒ Object
| 64 65 66 | # 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 ⇒ Object
| 72 73 74 | # File 'lib/ae_page_objects/document_query.rb', line 72 def permitted_types_dump conditions.map(&:document_class).map(&:name).inspect end |