class Axe::FindsPage

Constants

WEBDRIVER_NAMES

Public Class Methods

new(world) click to toggle source
# File lib/axe/finds_page.rb, line 11
def initialize(world)
  @world = world
end

Public Instance Methods

page() click to toggle source
# File lib/axe/finds_page.rb, line 15
def page
  from_configuration || implicit or raise "A page/browser/webdriver must be configured"
end

Private Instance Methods

configuration() click to toggle source
# File lib/axe/finds_page.rb, line 21
def configuration
  Axe::Configuration.instance
end
ensure_ivar_format(name) click to toggle source
# File lib/axe/finds_page.rb, line 50
def ensure_ivar_format(name)
  # ensure leading '@'
  name.to_s.sub(/^([^@])/, '@\1').to_sym
end
from_configuration() click to toggle source
# File lib/axe/finds_page.rb, line 25
def from_configuration
  if configuration.page.is_a?(String) || configuration.page.is_a?(Symbol)
    from_world(configuration.page)
  else
    configuration.page
  end
end
from_world(name) click to toggle source
# File lib/axe/finds_page.rb, line 37
def from_world(name)
  via_method(name) || via_ivar(name)
end
implicit() click to toggle source
# File lib/axe/finds_page.rb, line 33
def implicit
  WEBDRIVER_NAMES.map(&method(:from_world)).drop_while(&:nil?).first
end
via_ivar(name) click to toggle source
# File lib/axe/finds_page.rb, line 45
def via_ivar(name)
  name = ensure_ivar_format(name)
  @world.instance_variable_get(name) if @world.instance_variables.include?(name)
end
via_method(name) click to toggle source
# File lib/axe/finds_page.rb, line 41
def via_method(name)
  @world.__send__(name) if @world.respond_to?(name)
end