Class: Monet::Capture
- Inherits:
-
Object
- Object
- Monet::Capture
- Includes:
- Capybara::DSL, PageLogger::Helpers
- Defined in:
- lib/monet/capture.rb
Constant Summary collapse
- MAX_HEIGHT =
10000
Instance Method Summary collapse
- #capture(url, image_or_save_path) ⇒ Object
- #capture_all ⇒ Object
-
#initialize(config) ⇒ Capture
constructor
A new instance of Capture.
Methods included from PageLogger::Helpers
Constructor Details
#initialize(config) ⇒ Capture
Returns a new instance of Capture.
19 20 21 22 23 24 25 26 27 |
# File 'lib/monet/capture.rb', line 19 def initialize(config) @config = config @router = Monet::Router.new config Capybara.register_driver :poltergeist do |app| Capybara::Poltergeist::Driver.new(app, {js_errors: false}) end Capybara.default_driver = @config.driver end |
Instance Method Details
#capture(url, image_or_save_path) ⇒ Object
42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 |
# File 'lib/monet/capture.rb', line 42 def capture(url, image_or_save_path) if image_or_save_path.is_a? String image = Monet::Image.new image_or_save_path else image = image_or_save_path end visit_once url page.driver.resize(image.width, MAX_HEIGHT) page.driver.render(image.path, full: true) image.thumbnail!(@router.thumbnail_dir) if @config.thumbnail? log_page(url, page.status_code) return ErrorImage.new(image.path, page.status_code) if failed?(url) image end |
#capture_all ⇒ Object
29 30 31 32 33 34 35 36 37 38 39 40 |
# File 'lib/monet/capture.rb', line 29 def capture_all images = [] @router.capture_routes.map do |url, paths| visit_once url paths.each do |path| images << capture(url, path) end end images end |