wkhtmltopdf_runner 0.1.0 → 0.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
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