sugoi_webpage_capture 0.0.1 → 0.0.2

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: fea7595d6443eb7afdde2e7eb6e4b09e64ffb4c0
4
- data.tar.gz: b5717b975e3d6a715f571bdc294a110a542f2a21
3
+ metadata.gz: 30e446abb57a16193cedee7d908af361500a4800
4
+ data.tar.gz: ea17fb6b1e9e8a418476b32e7942a820b2d1caac
5
5
  SHA512:
6
- metadata.gz: 339d5cf7fee1a9170e5659bbc2f0042ea17dbf45c6302b5e2ae17bb0b851bb8231c642ff6d2035dcb8fa6b73827b6b1c37839da1f22e91e714c2611488e882e5
7
- data.tar.gz: 3425125785218067d163550f62a9d9bd2a1141db5667b933093bf956ae7e052af77e7fcb9fd912418c07c88a9b2d68ed78d6bd1d90c79abe605b500cf472ee45
6
+ metadata.gz: 33ea9de1cb4adc273797a1a6b747bc76b9eef5455b734e1c561c494173f8f2119a1de1fc7262b6826479ee89a9182062892547709a2b28d527265b4f1d82ee09
7
+ data.tar.gz: 58e23dbd5619074e9a2016cc0b14f464c049993035e32eb3748d38a77224ffb99685130e1590ab08c811b24c84bfcfb4435b300b60d76ade0131762d9985c83a
data/README.md CHANGED
@@ -21,8 +21,13 @@ Or install it yourself as:
21
21
 
22
22
  ```ruby
23
23
  require "sugoi_webpage_capture"
24
+ captured_url = "http://google.com"
24
25
 
25
- screenshot = SugoiWebpageCapture::Screenshot.new
26
+ screenshot = SugoiWebpageCapture::Browser.new
27
+ tempfile = screenshot.capture(captured_url) # return captured image.
28
+ tempfile.unlink
29
+
30
+ screenshot = SugoiWebpageCapture::Browser.new(:iphone5)
26
31
  tempfile = screenshot.capture(captured_url) # return captured image.
27
32
  tempfile.unlink
28
33
  ```
@@ -0,0 +1,56 @@
1
+ module SugoiWebpageCapture
2
+ class Browser
3
+ include Capybara::DSL
4
+
5
+ BROWSERS = {
6
+ firefox: { ua: "", browser: :firefox, size: [1024, 768] },
7
+ chrome: { ua: "", browser: :chrome, size: [1024, 768] },
8
+ iphone5: {
9
+ ua: "Mozilla/5.0 (iPod touch; CPU iPhone OS 8_0 like Mac OS X) AppleWebKit/600.1.4 (KHTML, like Gecko) Version/8.0 Mobile/12A365 Safari/600.1.4",
10
+ browser: :chrome,
11
+ size:[320, 568],
12
+ required_profile: true
13
+ },
14
+ iphone6: {
15
+ ua: "Mozilla/5.0 (iPod touch; CPU iPhone OS 8_0 like Mac OS X) AppleWebKit/600.1.4 (KHTML, like Gecko) Version/8.0 Mobile/12A365 Safari/600.1.4",
16
+ browser: :chrome,
17
+ size: [375, 667],
18
+ required_profile: true
19
+ },
20
+ }
21
+
22
+ def initialize(browser_name = :firefox)
23
+ @browser_name = browser_name
24
+ init
25
+ end
26
+
27
+ def capture(captured_url)
28
+ page.current_window.resize_to(*BROWSERS[@browser_name][:size])
29
+ tempfile = Tempfile.new(["ss", ".png"])
30
+ visit captured_url
31
+ yield(self) if block_given?
32
+ page.driver.save_screenshot(tempfile, full: true) # TODO Chtome full size capture
33
+ tempfile
34
+ end
35
+
36
+ private
37
+
38
+ def init
39
+ raise("not found browser") unless BROWSERS.key?(@browser_name)
40
+ Capybara.run_server = false
41
+ Capybara.register_driver(@browser_name) do |app|
42
+ Capybara::Selenium::Driver.new(app, opts)
43
+ end
44
+ Capybara.current_driver = @browser_name
45
+ end
46
+
47
+ def opts
48
+ h = {}
49
+ if BROWSERS[@browser_name][:required_profile]
50
+ h[:args] = ["--user-agent=#{BROWSERS[@browser_name][:ua]}"]
51
+ end
52
+ h[:browser] = BROWSERS[@browser_name][:browser]
53
+ h
54
+ end
55
+ end
56
+ end
@@ -1,3 +1,3 @@
1
1
  module SugoiWebpageCapture
2
- VERSION = "0.0.1"
2
+ VERSION = "0.0.2"
3
3
  end
@@ -1,21 +1,7 @@
1
1
  require 'capybara/dsl'
2
2
  require "selenium-webdriver"
3
3
  require "sugoi_webpage_capture/version"
4
- require "sugoi_webpage_capture/screenshot"
4
+ require "sugoi_webpage_capture/browser"
5
5
 
6
6
  module SugoiWebpageCapture
7
- BROWSERS = {
8
- firefox: :selenium,
9
- chrome: :selenium_chrome
10
- }
11
-
12
- def self.init(browser)
13
- raise("not found browser") unless BROWSERS.key?(browser)
14
-
15
- Capybara.run_server = false
16
- Capybara.register_driver BROWSERS[browser] do |app|
17
- Capybara::Selenium::Driver.new(app, browser: browser)
18
- end
19
- Capybara.current_driver = BROWSERS[browser]
20
- end
21
7
  end
@@ -5,32 +5,41 @@ describe SugoiWebpageCapture do
5
5
  expect(SugoiWebpageCapture::VERSION).not_to be nil
6
6
  end
7
7
 
8
- describe "webdriber" do
8
+ describe "browsers" do
9
+ let(:url) { "http://search.yahoo.co.jp" }
9
10
  context 'firefox' do
10
11
  describe 'within' do
11
12
  it 'be success' do
12
- screenshot = SugoiWebpageCapture::Screenshot.new
13
- tempfile = screenshot.capture("http://search.yahoo.co.jp") do |x|
13
+ screenshot = SugoiWebpageCapture::Browser.new
14
+ tempfile = screenshot.capture(url) do |x|
14
15
  x.fill_in 'yschsp', with: "あげぽよ"
15
16
  x.find(".b").click
16
17
  end
17
18
  expect(tempfile).to be_a Tempfile
18
- expect(Capybara.current_driver).to eq :selenium
19
+ expect(Capybara.current_driver).to eq :firefox
19
20
  end
20
21
  end
21
22
 
22
23
  it 'be success' do
23
- screenshot = SugoiWebpageCapture::Screenshot.new
24
- expect(screenshot.capture("http://google.com")).to be_a Tempfile
25
- expect(Capybara.current_driver).to eq :selenium
24
+ screenshot = SugoiWebpageCapture::Browser.new
25
+ expect(screenshot.capture(url)).to be_a Tempfile
26
+ expect(Capybara.current_driver).to eq :firefox
27
+ end
28
+ end
29
+
30
+ context 'iphone5' do
31
+ it 'be success' do
32
+ screenshot = SugoiWebpageCapture::Browser.new(:iphone5)
33
+ expect(Capybara.current_driver).to eq :iphone5
34
+ expect(screenshot.capture(url)).to be_a Tempfile
26
35
  end
27
36
  end
28
37
 
29
38
  context 'chrome' do
30
39
  it 'be success' do
31
- screenshot = SugoiWebpageCapture::Screenshot.new(browser: :chrome)
32
- expect(Capybara.current_driver).to eq :selenium_chrome
33
- expect(screenshot.capture("http://google.com")).to be_a Tempfile
40
+ screenshot = SugoiWebpageCapture::Browser.new(:chrome)
41
+ expect(Capybara.current_driver).to eq :chrome
42
+ expect(screenshot.capture(url)).to be_a Tempfile
34
43
  end
35
44
  end
36
45
  end
@@ -10,7 +10,7 @@ Gem::Specification.new do |spec|
10
10
  spec.email = ["n905i.1214@gmail.com"]
11
11
  spec.description = %q{Webpage capture.}
12
12
  spec.summary = %q{Webpage capture, using selenium.}
13
- spec.homepage = ""
13
+ spec.homepage = "https://github.com/jiikko/sugoi_webpage_capture"
14
14
  spec.license = "MIT"
15
15
 
16
16
  spec.files = `git ls-files -z`.split("\x0")
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: sugoi_webpage_capture
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.1
4
+ version: 0.0.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - jiikko
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2015-05-04 00:00:00.000000000 Z
11
+ date: 2015-05-05 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -109,12 +109,12 @@ files:
109
109
  - README.md
110
110
  - Rakefile
111
111
  - lib/sugoi_webpage_capture.rb
112
- - lib/sugoi_webpage_capture/screenshot.rb
112
+ - lib/sugoi_webpage_capture/browser.rb
113
113
  - lib/sugoi_webpage_capture/version.rb
114
114
  - spec/spec_helper.rb
115
115
  - spec/sugoi_webpage_capture_spec.rb
116
116
  - sugoi_webpage_capture.gemspec
117
- homepage: ''
117
+ homepage: https://github.com/jiikko/sugoi_webpage_capture
118
118
  licenses:
119
119
  - MIT
120
120
  metadata: {}
@@ -1,20 +0,0 @@
1
- module SugoiWebpageCapture
2
- class Screenshot
3
- include Capybara::DSL
4
-
5
- def initialize(browser: :firefox)
6
- SugoiWebpageCapture.init(browser)
7
- end
8
-
9
- def capture(captured_url)
10
- page.current_window.resize_to(1024, 768)
11
-
12
- tempfile = Tempfile.new(["ss", ".png"])
13
- visit captured_url
14
- yield(self) if block_given?
15
- # TODO Chtome full size capture
16
- page.driver.save_screenshot(tempfile, full: true)
17
- tempfile
18
- end
19
- end
20
- end