class BrowserCrawler::ScreenshotOperator

Control operations on screenshots

Attributes

filename_base[R]
format[R]
save_screenshots[R]
screenshots_folder[R]

Public Class Methods

new(save_screenshots: false, save_screenshots_to: nil, format: 'png', filename: nil) click to toggle source
# File lib/browser_crawler/screenshot_operator.rb, line 6
def initialize(save_screenshots: false,
               save_screenshots_to: nil,
               format: 'png',
               filename: nil)
  @screenshots_folder = save_screenshots_to
  @format = format
  @save_screenshots = save_screenshots
  @filename_base = filename || 'screenshot'
end

Public Instance Methods

file_path(url: nil) click to toggle source
# File lib/browser_crawler/screenshot_operator.rb, line 20
def file_path(url: nil)
  "#{save_path}/#{filename(url: url)}"
end
filename(url: nil) click to toggle source
# File lib/browser_crawler/screenshot_operator.rb, line 24
def filename(url: nil)
  if !filename_base_default? || url.nil?
    "#{filename_prefix}_#{filename_base}.#{format}"
  else
    path = UrlTools.uri(url: url)&.path&.gsub('/', '%')&.gsub('.', '')
    "#{filename_prefix}_#{path}.#{format}"
  end
end
save_screenshots?() click to toggle source
# File lib/browser_crawler/screenshot_operator.rb, line 16
def save_screenshots?
  [screenshots_folder, save_screenshots].any?
end

Private Instance Methods

filename_base_default?() click to toggle source
# File lib/browser_crawler/screenshot_operator.rb, line 35
def filename_base_default?
  filename_base == 'screenshot'
end
filename_prefix() click to toggle source
# File lib/browser_crawler/screenshot_operator.rb, line 43
def filename_prefix
  Time.now.getutc.to_s.tr(' ', '_')
end
save_path() click to toggle source
# File lib/browser_crawler/screenshot_operator.rb, line 39
def save_path
  screenshots_folder || File.join(Dir.pwd, 'tmp', 'screenshots')
end