wkhtmltopdf_runner 0.1.0 → 0.2.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
  SHA256:
3
- metadata.gz: 25395e8c97bcf92fbfb3c1900aeebc29fde134bd284ea20ac8d0a6001392a7b3
4
- data.tar.gz: b2854859d2dcb315f891ab90d9e890d2233c44ac55c2eb36450b334dd0df5508
3
+ metadata.gz: 1895a36bbd4b903055cf6d21f42106e5bfa00c1a8d875631e6b9979d0b88d356
4
+ data.tar.gz: 61d6d422e25f4aac27115720fb6a62960dcafe932dc6c013bc77f6bf677b93d4
5
5
  SHA512:
6
- metadata.gz: b0bc3de109daf0557bb5d52fb075d024bfcca427b29f4f85077b82dab1b55d3cc710c7eb118bb9a7189be192277d9ea826a0f5fb637d6e20d29b85427416647b
7
- data.tar.gz: c62ce9a592e75d480fc466a25a777582b728835e91c5a32478539136ef15312c85609d30919416abeb4245dfb9294653764e6cead326e73abfd27e62caf8e600
6
+ metadata.gz: c066432c2090eebff947c79dcc658532ccc111a1ee496dc8934b7e61c964ed54b9e68327fbd1d1ed0dd1a5ecb1942b4f3bb5d1d3045ded705cad6787e84679d3
7
+ data.tar.gz: 8279ec00819efdae52cab34c3894d5fd0209b73fc0b440a9f296821e8753e16e68f5908e58ffa7403916801c3b40ce1727df34103fa2c0bec9fbb6dd7f3274bc
data/.rubocop.yml CHANGED
@@ -1,3 +1,5 @@
1
+ require: rubocop-rspec
2
+
1
3
  AllCops:
2
4
  TargetRubyVersion: 2.3
3
5
  Exclude:
data/Gemfile CHANGED
@@ -5,6 +5,11 @@ source 'https://rubygems.org'
5
5
  group :development do
6
6
  gem 'pry'
7
7
  gem 'rubocop', require: false
8
+ gem 'rubocop-rspec', require: false
9
+ end
10
+
11
+ group :development, :test do
12
+ gem 'simplecov'
8
13
  end
9
14
 
10
15
  # Specify your gem's dependencies in wkhtmltopdf_runner.gemspec
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- wkhtmltopdf_runner (0.1.0)
4
+ wkhtmltopdf_runner (0.2.0)
5
5
 
6
6
  GEM
7
7
  remote: https://rubygems.org/
@@ -9,17 +9,20 @@ GEM
9
9
  ast (2.4.0)
10
10
  coderay (1.1.2)
11
11
  diff-lcs (1.3)
12
+ docile (1.3.1)
12
13
  jaro_winkler (1.5.2)
14
+ json (2.2.0)
13
15
  method_source (0.9.2)
14
- parallel (1.13.0)
16
+ parallel (1.14.0)
15
17
  parser (2.6.0.0)
16
18
  ast (~> 2.4.0)
17
19
  powerpack (0.1.2)
18
20
  pry (0.12.2)
19
21
  coderay (~> 1.1.0)
20
22
  method_source (~> 0.9.0)
23
+ psych (3.1.0)
21
24
  rainbow (3.0.0)
22
- rake (10.5.0)
25
+ rake (12.3.2)
23
26
  rspec (3.8.0)
24
27
  rspec-core (~> 3.8.0)
25
28
  rspec-expectations (~> 3.8.0)
@@ -33,15 +36,23 @@ GEM
33
36
  diff-lcs (>= 1.2.0, < 2.0)
34
37
  rspec-support (~> 3.8.0)
35
38
  rspec-support (3.8.0)
36
- rubocop (0.64.0)
39
+ rubocop (0.65.0)
37
40
  jaro_winkler (~> 1.5.1)
38
41
  parallel (~> 1.10)
39
42
  parser (>= 2.5, != 2.5.1.1)
40
43
  powerpack (~> 0.1)
44
+ psych (>= 3.1.0)
41
45
  rainbow (>= 2.2.2, < 4.0)
42
46
  ruby-progressbar (~> 1.7)
43
47
  unicode-display_width (~> 1.4.0)
48
+ rubocop-rspec (1.32.0)
49
+ rubocop (>= 0.60.0)
44
50
  ruby-progressbar (1.10.0)
51
+ simplecov (0.16.1)
52
+ docile (~> 1.1)
53
+ json (>= 1.8, < 3)
54
+ simplecov-html (~> 0.10.0)
55
+ simplecov-html (0.10.2)
45
56
  unicode-display_width (1.4.1)
46
57
  wkhtmltopdf-binary-edge (0.12.5.0)
47
58
 
@@ -51,9 +62,11 @@ PLATFORMS
51
62
  DEPENDENCIES
52
63
  bundler (~> 2.0)
53
64
  pry
54
- rake (~> 10.0)
55
- rspec (~> 3.0)
65
+ rake (~> 12.3)
66
+ rspec (~> 3.8)
56
67
  rubocop
68
+ rubocop-rspec
69
+ simplecov
57
70
  wkhtmltopdf-binary-edge (~> 0.12.5)
58
71
  wkhtmltopdf_runner!
59
72
 
@@ -10,7 +10,7 @@ module WkhtmltopdfRunner
10
10
  @url = url
11
11
  @file = file
12
12
  @config = config
13
- @options = options.reverse_merge(config.options)
13
+ @options = config.options.merge(options)
14
14
  end
15
15
 
16
16
  def run
@@ -4,19 +4,25 @@ require 'logger'
4
4
 
5
5
  module WkhtmltopdfRunner
6
6
  class Configuration
7
- attr_writer :logger, :options
8
- attr_accessor :debug, :binary_path
7
+ attr_writer :logger, :options, :debug
8
+ attr_accessor :binary_path
9
9
 
10
10
  def logger
11
- @logger ||= begin
12
- return Rails.logger if defined?(Rails)
11
+ return @logger if defined?(@logger)
12
+ return Rails.logger if defined?(Rails)
13
13
 
14
- Logger.new(STDOUT)
15
- end
14
+ Logger.new(STDOUT)
16
15
  end
17
16
 
18
17
  def options
19
18
  @options || {}
20
19
  end
20
+
21
+ def debug
22
+ return @debug if defined?(@debug)
23
+ return true if defined?(Rails) && Rails.env.development?
24
+
25
+ false
26
+ end
21
27
  end
22
28
  end
@@ -2,6 +2,10 @@
2
2
 
3
3
  module WkhtmltopdfRunner
4
4
  class Path
5
+ def self.get(path = nil)
6
+ new(path).call
7
+ end
8
+
5
9
  EXE_NAME = 'wkhtmltopdf'
6
10
 
7
11
  def initialize(path = nil)
@@ -9,7 +13,9 @@ module WkhtmltopdfRunner
9
13
  end
10
14
 
11
15
  def call
12
- @path || find_wkhtmltopdf_binary_path
16
+ return @path if WkhtmltopdfRunner::Utils.present?(@path)
17
+
18
+ find_wkhtmltopdf_binary_path
13
19
  end
14
20
 
15
21
  private
@@ -25,21 +31,25 @@ module WkhtmltopdfRunner
25
31
  `which #{EXE_NAME}`.chomp
26
32
  end
27
33
 
28
- WkhtmltopdfRunner::Utils.present?(detected_path) && detected_path
34
+ WkhtmltopdfRunner::Utils.presence(detected_path)
29
35
  rescue StandardError
30
36
  nil
31
37
  end
32
38
 
33
39
  def path_from_env
40
+ env_paths
41
+ .map { |l| File.expand_path(File.join(l, EXE_NAME)) }
42
+ .detect { |location| File.exist?(location) }
43
+ end
44
+
45
+ def env_paths
34
46
  possible_locations = [
35
- ENV['PATH'].split(':'),
47
+ ENV['PATH'].split(File::PATH_SEPARATOR),
36
48
  %w[/usr/bin /usr/local/bin]
37
49
  ]
38
50
 
39
51
  possible_locations << %w[~/bin] if ENV.key?('HOME')
40
- possible_locations
41
- .flatten.map { |l| File.expand_path(File.join(l, EXE_NAME)) }
42
- .detect { |location| File.exist?(location) }
52
+ possible_locations.flatten.uniq
43
53
  end
44
54
  end
45
55
  end
@@ -1,6 +1,7 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  require 'wkhtmltopdf_runner/configuration'
4
+ require 'tempfile'
4
5
 
5
6
  module WkhtmltopdfRunner
6
7
  class Runner
@@ -28,5 +28,9 @@ module WkhtmltopdfRunner
28
28
  def self.present?(obj)
29
29
  !blank?(obj)
30
30
  end
31
+
32
+ def self.presence(obj)
33
+ obj if present?(obj)
34
+ end
31
35
  end
32
36
  end
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module WkhtmltopdfRunner
4
- VERSION = '0.1.0'
4
+ VERSION = '0.2.0'
5
5
  end
@@ -36,7 +36,7 @@ Gem::Specification.new do |spec|
36
36
  spec.required_ruby_version = '>= 2.3.0'
37
37
 
38
38
  spec.add_development_dependency 'bundler', '~> 2.0'
39
- spec.add_development_dependency 'rake', '~> 10.0'
40
- spec.add_development_dependency 'rspec', '~> 3.0'
39
+ spec.add_development_dependency 'rake', '~> 12.3'
40
+ spec.add_development_dependency 'rspec', '~> 3.8'
41
41
  spec.add_development_dependency 'wkhtmltopdf-binary-edge', '~> 0.12.5'
42
42
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: wkhtmltopdf_runner
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.0
4
+ version: 0.2.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Justas Palumickas
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2019-02-19 00:00:00.000000000 Z
11
+ date: 2019-02-27 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -30,28 +30,28 @@ dependencies:
30
30
  requirements:
31
31
  - - "~>"
32
32
  - !ruby/object:Gem::Version
33
- version: '10.0'
33
+ version: '12.3'
34
34
  type: :development
35
35
  prerelease: false
36
36
  version_requirements: !ruby/object:Gem::Requirement
37
37
  requirements:
38
38
  - - "~>"
39
39
  - !ruby/object:Gem::Version
40
- version: '10.0'
40
+ version: '12.3'
41
41
  - !ruby/object:Gem::Dependency
42
42
  name: rspec
43
43
  requirement: !ruby/object:Gem::Requirement
44
44
  requirements:
45
45
  - - "~>"
46
46
  - !ruby/object:Gem::Version
47
- version: '3.0'
47
+ version: '3.8'
48
48
  type: :development
49
49
  prerelease: false
50
50
  version_requirements: !ruby/object:Gem::Requirement
51
51
  requirements:
52
52
  - - "~>"
53
53
  - !ruby/object:Gem::Version
54
- version: '3.0'
54
+ version: '3.8'
55
55
  - !ruby/object:Gem::Dependency
56
56
  name: wkhtmltopdf-binary-edge
57
57
  requirement: !ruby/object:Gem::Requirement