Class: AePageObjects::DocumentProxy

Inherits:
Object
  • Object
show all
Defined in:
lib/ae_page_objects/document_proxy.rb

Instance Method Summary collapse

Constructor Details

#initialize(loaded_page, query) ⇒ DocumentProxy

Returns a new instance of DocumentProxy.



12
13
14
15
# File 'lib/ae_page_objects/document_proxy.rb', line 12

def initialize(loaded_page, query)
  @loaded_page = loaded_page
  @query = query
end

Dynamic Method Handling

This class handles dynamic methods through the method_missing method

#method_missing(name, *args, **kwargs, &block) ⇒ Object (private)



39
40
41
# File 'lib/ae_page_objects/document_proxy.rb', line 39

def method_missing(name, *args, **kwargs, &block)
  implicit_document.__send__(name, *args, **kwargs, &block)
end

Instance Method Details

#as_a(document_class) ⇒ Object

Raises:



21
22
23
24
25
26
27
# File 'lib/ae_page_objects/document_proxy.rb', line 21

def as_a(document_class)
  if @loaded_page.is_a?(document_class)
    return @loaded_page
  end

  raise CastError, "Loaded page is not a #{document_class.name}. Allowed pages: #{@query.permitted_types_dump}"
end

#is_a?(document_class) ⇒ Boolean

Returns:

  • (Boolean)


17
18
19
# File 'lib/ae_page_objects/document_proxy.rb', line 17

def is_a?(document_class)
  super || @loaded_page.is_a?(document_class)
end