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 |