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