module Ferris::SiteObject

Public Class Methods

configure(&blk) click to toggle source
# File lib/ferris/core.rb, line 127
def self.configure(&blk)
  raise 'Must provide block with defined regions' unless block_given?
  last_defined_class = defined_classes.last
  last_defined_class.include Browser
  last_defined_class.extend Region
  last_defined_class.instance_exec(&blk)
end
defined_classes() click to toggle source
# File lib/ferris/core.rb, line 135
def self.defined_classes
  self.constants.select {|k| self.const_get(k).is_a? Class }.map {|class_name| Object.const_get("#{self.to_s}::#{class_name.to_s}") }
end
included(_kls) click to toggle source
# File lib/ferris/core.rb, line 139
def self.included(_kls)
  @@defined_classes = defined_classes
end

Public Instance Methods

method_missing(name, *arg, &blk) click to toggle source
Calls superclass method
# File lib/ferris/core.rb, line 143
def method_missing(name, *arg, &blk)
  @@defined_classes.each {|class_name| return class_name.new.send(name, *arg, &blk)  if class_name.new.respond_to?(name) }
  super
end
respond_to_missing?(method_name, _include_private = false) click to toggle source
Calls superclass method
# File lib/ferris/core.rb, line 148
def respond_to_missing?(method_name, _include_private = false)
  @@defined_classes.each {|class_name| return true if class_name.new.respond_to?(method_name)}
  super
end