28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
|
# File 'lib/angular_webdriver/protractor/rspec_helpers.rb', line 28
def define_page_methods opts={}
method = opts.fetch(:method, :define_singleton_method)
page_module = opts[:page_module] || raise('must set page_module')
target_class = opts[:target_class] || raise('must set target_class')
driver_object = opts[:watir] || opts[:driver] || raise('must set driver')
page_module.constants.each do |page_class|
qualified_class = page_module.const_get(page_class)
AngularWebdriver.install_rspec_helpers qualified_class
page_name = page_class.to_s.gsub(/([a-z\d])([A-Z])/, '\1_\2').downcase
target_class.send(method, page_name) do
instance_name = "@#{page_module}#{page_class}"
obj = qualified_class.new driver_object
instance_variable_set instance_name, obj
end
end
end
|