lib/gnawrnip/screenshot.rb in gnawrnip-0.2.2 vs lib/gnawrnip/screenshot.rb in gnawrnip-0.2.3
- old
+ new
@@ -1,9 +1,9 @@
require 'tempfile'
require 'time'
require 'capybara'
-require 'oily_png'
+require 'gnawrnip/developer'
module Gnawrnip
class Screenshot
class << self
@@ -26,14 +26,11 @@
#
def take(wait_second = Capybara.default_wait_time)
start_time = Time.now
begin
- tempfile = Tempfile.new(['gnawrnip', '.png'])
- session.save_screenshot(tempfile.path)
- resize(tempfile.path) if need_resize?
- tempfile
+ shot
rescue Capybara::NotSupportedByDriverError => e
raise e
rescue => e
raise e if (Time.now - start_time) >= wait_second
sleep(0.3)
@@ -45,42 +42,16 @@
def session
Capybara.current_session
end
- def need_resize?
- !Gnawrnip.max_frame_size.nil?
- end
-
- def resize(path)
- image = OilyPNG::Canvas.from_file(path)
- new_width, new_height = calculate_new_size(image.width, image.height)
-
- image.resample_bilinear!(new_width, new_height)
- image.save(path)
- end
-
#
- # Return new frame size (width and height).
- # This size is keeping original aspect ratio.
+ # @return [Gnawrnip::Image]
#
- # @return [Array] New width and height size. [width, height]
- #
- def calculate_new_size(width, height)
- ratio = width.to_f / height.to_f
- target = Gnawrnip.max_frame_size
-
- return [width, height] if target > [width, height].max
-
- if ratio < 1
- new_width = target * ratio
- new_height = target
- else
- new_width = target
- new_height = target / ratio
- end
-
- return [new_width, new_height]
+ def shot
+ tempfile = Tempfile.new(['gnawrnip', '.png'])
+ session.save_screenshot(tempfile.path)
+ Developer.new.develop(tempfile)
end
end
end
end