class Baraviz::ScreenshotObserver
Public Class Methods
new(session, screenshot_dir)
click to toggle source
Calls superclass method
Baraviz::Observer::new
# File lib/baraviz/screenshot_observer.rb, line 6 def initialize session, screenshot_dir @screenshots = {} @dir = screenshot_dir super session end
Public Instance Methods
make_node(v)
click to toggle source
# File lib/baraviz/screenshot_observer.rb, line 26 def make_node v uri = URI.parse v.to_s RGL::DOT::Node.new({'name' => v, 'label' => uri.path, 'image' => @screenshots[v], 'URL' => @screenshots[v]}, RGL::DOT::NODE_OPTS + ['image']) end
observe_page(page)
click to toggle source
Calls superclass method
Baraviz::Observer#observe_page
# File lib/baraviz/screenshot_observer.rb, line 12 def observe_page page @screenshots[page] ||= take_screenshot super end
take_screenshot()
click to toggle source
# File lib/baraviz/screenshot_observer.rb, line 17 def take_screenshot path = File.join @dir, "#{Capybara.current_url.gsub(/[^A-Za-z0-9_\-]/, '-')}.png" result = Capybara::Screenshot.registered_drivers.fetch(Capybara.current_driver) do |driver_name| warn "capybara-screenshot could not detect a screenshot driver for '#{Capybara.current_driver}'. Saving with default with unknown results." Capybara::Screenshot.registered_drivers[:default] end.call(Capybara.page.driver, path) if (result == :not_supported) then nil else File.basename(path) end end