Class: PageObjectify::Generator
- Inherits:
-
Object
- Object
- PageObjectify::Generator
- Includes:
- Logging
- Defined in:
- lib/page-objectify/generator.rb
Instance Method Summary collapse
-
#generate! ⇒ Object
Calls #visit, generates a page class for the current page, then calls #teardown Raises a NotImplementedError if #visit is not implemented Raises a RuntimeError if @browser is not a Watir::Browser object.
-
#initialize(**config) ⇒ Generator
constructor
A new instance of Generator.
- #teardown ⇒ Object
Methods included from Logging
Constructor Details
Instance Method Details
#generate! ⇒ Object
Calls #visit, generates a page class for the current page, then calls #teardown Raises a NotImplementedError if #visit is not implemented Raises a RuntimeError if @browser is not a Watir::Browser object
18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 |
# File 'lib/page-objectify/generator.rb', line 18 def generate! raise NotImplementedError, "The #visit method does not exist! Please implement it!" unless respond_to?(:visit) visit execute_runtime_checks logger.info "About to parse HTML! Current URL: #{@browser.url}" doc = Nokogiri::HTML(@browser.html) @code = DOMToRuby.new(DOM.new(doc), @config).unparse logger.debug "** BEGIN GENERATED CODE **" @code.each_line { |line| logger.debug line.chomp } logger.debug "** END GENERATED CODE **" File.open(@config.file, 'w') { |file| file.write(@code) } teardown end |
#teardown ⇒ Object
37 38 39 |
# File 'lib/page-objectify/generator.rb', line 37 def teardown @browser.quit end |