silkscreen 0.1 → 0.1.1

Sign up to get free protection for your applications and to get access to all the features.
@@ -3,8 +3,7 @@ require 'rubygems'
3
3
  require 'thor'
4
4
  require 'headless'
5
5
  require 'selenium-webdriver'
6
- require 'chunky_png'
7
- require 'oily_png'
6
+ require 'silkscreen'
8
7
 
9
8
  module Silkscreen
10
9
  class App < Thor
@@ -22,53 +21,18 @@ module Silkscreen
22
21
  headless.start
23
22
 
24
23
  driver = Selenium::WebDriver.for :chrome
25
- window_width, window_height = options[:viewport].split('x').map { |x| x.to_i }
26
- driver.manage.window.resize_to window_width, window_height
27
- driver.navigate.to url
28
- sleep options[:sleep]
29
- img = driver.screenshot_as :png
24
+
25
+ img = Silkscreen.get_screenshot url, options, driver
30
26
 
31
27
  driver.quit
32
28
  headless.destroy
33
29
 
34
- if options[:full]
35
- if options[:max_width] || options[:max_height]
36
- canvas = ChunkyPNG::Image.from_blob img
37
- canvas = resize_canvas(canvas, options[:max_width], options[:max_height])
38
- img = canvas.to_s
39
- end
40
- else
41
- canvas = ChunkyPNG::Image.from_blob img
42
- canvas.crop! 0, 0, [window_width, canvas.width].min, [window_height, canvas.height].min
43
- canvas = resize_canvas(canvas, options[:max_width], options[:max_height])
44
- img = canvas.to_s
45
- end
46
-
47
-
48
-
49
30
  if options[:output]
50
31
  create_file options[:output], img
51
32
  else
52
33
  print img
53
34
  end
54
35
  end
55
-
56
- private
57
-
58
- def resize_canvas(canvas, max_width, max_height)
59
- max_width ||= canvas.width
60
- max_height ||= canvas.height
61
- if canvas.width <= max_width && canvas.height <= max_height
62
- canvas
63
- else
64
- width_ratio = max_width.to_f/canvas.width
65
- height_ratio = max_height.to_f/canvas.height
66
- lower_ratio = [width_ratio, height_ratio].min
67
- new_width = (canvas.width * lower_ratio).round
68
- new_height = (canvas.height * lower_ratio).round
69
- canvas.resample_bilinear new_width, new_height
70
- end
71
- end
72
36
  end
73
37
  end
74
38
 
@@ -1,5 +1,42 @@
1
1
  require "silkscreen/version"
2
+ require 'chunky_png'
3
+ require 'oily_png'
2
4
 
3
5
  module Silkscreen
4
- # Your code goes here...
6
+ def self.get_screenshot(url, options, driver)
7
+ window_width, window_height = options[:viewport].split('x').map { |x| x.to_i }
8
+ driver.manage.window.resize_to window_width, window_height
9
+ driver.navigate.to url
10
+ sleep options[:sleep]
11
+ img = driver.screenshot_as :png
12
+ if options[:full]
13
+ if options[:max_width] || options[:max_height]
14
+ canvas = ChunkyPNG::Image.from_blob img
15
+ canvas = resize_canvas(canvas, options[:max_width], options[:max_height])
16
+ img = canvas.to_s
17
+ end
18
+ else
19
+ canvas = ChunkyPNG::Image.from_blob img
20
+ canvas.crop! 0, 0, [window_width, canvas.width].min, [window_height, canvas.height].min
21
+ canvas = resize_canvas(canvas, options[:max_width], options[:max_height])
22
+ img = canvas.to_s
23
+ end
24
+ end
25
+
26
+ private
27
+
28
+ def self.resize_canvas(canvas, max_width, max_height)
29
+ max_width ||= canvas.width
30
+ max_height ||= canvas.height
31
+ if canvas.width <= max_width && canvas.height <= max_height
32
+ canvas
33
+ else
34
+ width_ratio = max_width.to_f/canvas.width
35
+ height_ratio = max_height.to_f/canvas.height
36
+ lower_ratio = [width_ratio, height_ratio].min
37
+ new_width = (canvas.width * lower_ratio).round
38
+ new_height = (canvas.height * lower_ratio).round
39
+ canvas.resample_bilinear new_width, new_height
40
+ end
41
+ end
5
42
  end
@@ -1,3 +1,3 @@
1
1
  module Silkscreen
2
- VERSION = "0.1"
2
+ VERSION = "0.1.1"
3
3
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: silkscreen
3
3
  version: !ruby/object:Gem::Version
4
- version: '0.1'
4
+ version: 0.1.1
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors: