class Simulacrum::Renderer
The Renderer
Class is responsible for driving Capybara and setting up the desired page, screenshotting, croping, etc.
Attributes
tmp_path[R]
url[R]
Public Class Methods
new(url)
click to toggle source
# File lib/simulacrum/renderer.rb, line 13 def initialize(url) @url = url @tmp_dir = Dir.mktmpdir end
Public Instance Methods
cleanup()
click to toggle source
# File lib/simulacrum/renderer.rb, line 24 def cleanup FileUtils.remove_entry(@tmp_dir) end
get_bounds_for_selector(selector)
click to toggle source
# File lib/simulacrum/renderer.rb, line 28 def get_bounds_for_selector(selector) element = page.find(selector.to_s) location = element_location(element) size = element_size(element) [location.x, location.y, size.width, size.height] end
render()
click to toggle source
# File lib/simulacrum/renderer.rb, line 18 def render page.visit(url) resize_window! save_screenshot! end
Private Instance Methods
element_location(element)
click to toggle source
# File lib/simulacrum/renderer.rb, line 37 def element_location(element) element.native.location end
element_size(element)
click to toggle source
# File lib/simulacrum/renderer.rb, line 41 def element_size(element) element.native.size end
resize_window!()
click to toggle source
# File lib/simulacrum/renderer.rb, line 45 def resize_window! page.driver.browser.manage.window.resize_to(*window_size) rescue Selenium::WebDriver::Error::UnknownError return end
save_screenshot!()
click to toggle source
# File lib/simulacrum/renderer.rb, line 51 def save_screenshot! page.driver.save_screenshot(tmp_path) end
window_size()
click to toggle source
# File lib/simulacrum/renderer.rb, line 55 def window_size [1024, 768] end