phantomjs-helper 1.0.0 → 1.1.0

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: f14a442f426beabbc56f22f50c53eec8e7025e80
4
- data.tar.gz: 4b2fdb20b403f963ca01bf200e9bc737013c5d29
3
+ metadata.gz: ad393013067a3062ce026e603e44c2abefc69a53
4
+ data.tar.gz: 7266f6a18f827bc8714283378234169fad9bd5ef
5
5
  SHA512:
6
- metadata.gz: 35c0adbe230238f60973c745854b48d16e381e277b64fdf6195e09eefb8744c6798f9fc4f6a56ce5db172f938b790bdb80f7a55c3378e8e62fa3553052fd91d9
7
- data.tar.gz: 4d9a858cccb23923eda35c02982c57d31bec8ae4a2e0186659d5c534e5e1201f2a3d14dca8efb0c2c78e5c3ad087fa37e10aabb3943ccf3b6fa6008b4c249875
6
+ metadata.gz: aedd710628fa2f38ba3550c8b802ec97f7e5cc207e069969f1e07b327a1b45e67b81929408b384f78a77adfdd84cbb5aea3a245c232449cd5b89a2bd31d9c737
7
+ data.tar.gz: 2b5c7d23cda3c60e77eb5f8753e6d6608a073f94b5bd76ead3d3346ceafe5fedda5dbee824ff87e412a22b94a274e18a0b40b2077fb16cf6d885f837f903295e
@@ -1,10 +1,10 @@
1
1
  require 'phantomjs/helper/version'
2
2
  require 'phantomjs/helper/bitbucket_download_parser'
3
+ require 'phantomjs/helper/extractor'
3
4
  require 'fileutils'
4
5
  require 'rbconfig'
5
6
  require 'open-uri'
6
- require 'zip'
7
- require 'ffi-libarchive'
7
+ require 'openssl'
8
8
 
9
9
  module Phantomjs
10
10
  class Helper
@@ -27,12 +27,12 @@ module Phantomjs
27
27
  Dir.chdir install_dir do
28
28
  FileUtils.rm_f filename
29
29
  File.open(filename, 'wb') do |saved_file|
30
- URI.parse(url).open('rb') do |read_file|
30
+ URI.parse(url).open('rb',{:ssl_verify_mode => OpenSSL::SSL::VERIFY_NONE}) do |read_file|
31
31
  saved_file.write(read_file.read)
32
32
  end
33
33
  end
34
34
  raise "Could not download #{url}" unless File.exists? filename
35
- extract filename
35
+ Extractor.extract(filename, binary_path)
36
36
  FileUtils.rm_f filename
37
37
  end
38
38
  raise "Could not unzip #{filename} to get #{binary_path}" unless File.exists? binary_path
@@ -53,30 +53,6 @@ module Phantomjs
53
53
 
54
54
  private
55
55
 
56
- def extract(filename)
57
- case File.extname(filename)
58
- when '.zip'
59
- Zip::File.open(filename) do |zip_file|
60
- entry = zip_file.glob('**/bin/phantomjs*').first
61
- raise "Could not find phantomjs binary in zip archive #{filename}" unless entry
62
- FileUtils.rm_f entry.name
63
- entry.extract(File.basename(entry.name))
64
- end
65
- when '.bz2'
66
- Archive.read_open_filename(filename) do |ar|
67
- ar.each_entry do |e|
68
- if e.pathname.include?('bin/phantomjs')
69
- File.open(binary_path, 'wb') do |saved_file|
70
- saved_file.write(ar.read_data)
71
- end
72
- end
73
- end
74
- end
75
- else
76
- raise "Do not know how to extract binary from #{filename}"
77
- end
78
- end
79
-
80
56
  def driver_name
81
57
  /phantomjs-.*-#{platform}/
82
58
  end
@@ -1,5 +1,6 @@
1
1
  require 'nokogiri'
2
2
  require 'open-uri'
3
+ require 'openssl'
3
4
 
4
5
  module Phantomjs
5
6
  class Helper
@@ -10,7 +11,7 @@ module Phantomjs
10
11
  def initialize(driver_name, url:, open_uri_provider: OpenURI)
11
12
  @driver_name = driver_name
12
13
  @url = url
13
- @source = open_uri_provider.open_uri(url)
14
+ @source = open_uri_provider.open_uri(url, {:ssl_verify_mode => OpenSSL::SSL::VERIFY_NONE})
14
15
  end
15
16
 
16
17
  def downloads
@@ -0,0 +1,46 @@
1
+ require 'fileutils'
2
+
3
+ module Phantomjs
4
+ class Extractor
5
+ class << self
6
+ def extract(archive_file, destination)
7
+ case File.extname(archive_file)
8
+ when '.zip'
9
+ extract_zip(archive_file, destination)
10
+ when '.bz2'
11
+ extract_bz2(archive_file, destination)
12
+ else
13
+ raise "Do not know how to extract binary from #{archive_file}"
14
+ end
15
+ end
16
+
17
+ private
18
+
19
+ def extract_zip(archive_file, destination)
20
+ require 'zip'
21
+ Zip::File.open(archive_file) do |zip_file|
22
+ entry = zip_file.glob('**/bin/phantomjs*').first
23
+ raise "Could not find phantomjs binary in zip archive #{archive_file}" unless entry
24
+ FileUtils.rm_f destination
25
+ entry.extract(destination)
26
+ end
27
+ end
28
+
29
+ def extract_bz2(archive_file, destination)
30
+ require 'ffi-libarchive'
31
+ Archive.read_open_filename(archive_file) do |ar|
32
+ ar.each_entry do |e|
33
+ if e.pathname.include?('bin/phantomjs')
34
+ File.open(destination, 'wb') do |saved_file|
35
+ saved_file.write(ar.read_data)
36
+ end
37
+ return
38
+ end
39
+ end
40
+ end
41
+ raise "Could not find phantomjs binary in archive #{archive_file}"
42
+ end
43
+ end
44
+
45
+ end
46
+ end
@@ -1,5 +1,5 @@
1
1
  module Phantomjs
2
2
  class Helper
3
- VERSION = "1.0.0"
3
+ VERSION = "1.1.0"
4
4
  end
5
5
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: phantomjs-helper
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.0
4
+ version: 1.1.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Rasmus Bergholdt
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2016-07-19 00:00:00.000000000 Z
11
+ date: 2016-07-20 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rspec
@@ -100,6 +100,7 @@ files:
100
100
  - bin/phantomjs-update
101
101
  - lib/phantomjs/helper.rb
102
102
  - lib/phantomjs/helper/bitbucket_download_parser.rb
103
+ - lib/phantomjs/helper/extractor.rb
103
104
  - lib/phantomjs/helper/version.rb
104
105
  - phantomjs-helper.gemspec
105
106
  - spec/assets/bitbucket_downloads.html
@@ -126,7 +127,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
126
127
  version: '0'
127
128
  requirements: []
128
129
  rubyforge_project:
129
- rubygems_version: 2.4.5.1
130
+ rubygems_version: 2.5.1
130
131
  signing_key:
131
132
  specification_version: 4
132
133
  summary: Easy installation and use of Phantomjs.