class AePageObjects::DocumentProxy

Public Class Methods

new(loaded_page, query) click to toggle source
# File lib/ae_page_objects/document_proxy.rb, line 12
def initialize(loaded_page, query)
  @loaded_page = loaded_page
  @query = query
end

Public Instance Methods

as_a(document_class) click to toggle source
# 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) click to toggle source
Calls superclass method
# File lib/ae_page_objects/document_proxy.rb, line 17
def is_a?(document_class)
  super || @loaded_page.is_a?(document_class)
end

Private Instance Methods

implicit_document() click to toggle source
# File lib/ae_page_objects/document_proxy.rb, line 31
def implicit_document
  if @loaded_page.is_a? @query.default_document_class
    @loaded_page
  else
    raise CastError, "#{@query.default_document_class} expected, but #{@loaded_page.class} loaded"
  end
end
method_missing(name, *args, **kwargs, &block) click to toggle source
# 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
respond_to_missing?(*args) click to toggle source
Calls superclass method
# File lib/ae_page_objects/document_proxy.rb, line 43
def respond_to_missing?(*args)
  super || implicit_document.respond_to?(*args)
end