postdoc 0.3.8 → 0.4.2

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: 54aee40fdabd27f1565648b9f80a992a1799214472a7639019ca4385f5d2bd38
4
- data.tar.gz: 8d4870650fd4c27a6ebad35af0995a345c70b8edb77fef36c4a1a8d1cc41a82e
3
+ metadata.gz: 258788efb416de9075412d16b3444250cc796859f4d7043c0fdd56be957dc775
4
+ data.tar.gz: c212194f3bf126eb4fa5ae4bf7122e71b3a0ba3fcaa2bf4c3871db209e4c17c3
5
5
  SHA512:
6
- metadata.gz: 8edd792288b47e25ee4c1b76bc7ee80c5533aca499751f0d119acf1b978b0cbf80e7dc10cb2f4eb51db0d86241cb88440c78ff8a07e7604d0ddf67f688870281
7
- data.tar.gz: 2f83ad865f53d224044d1a9dd6a1abe758bbfe778ec4fccd9cb59904a2653e565b26e1650c05e29eb0242233f01de130e96e6a36a6d478acb27dea825986ac7c
6
+ metadata.gz: 1d3f4d1d0b0330a210c454d16be13db6cc2cc14311e3e382310dd75f2050d80d6f1b3815b83029400463acf9bb8447f3e083bca90ef263a6e7c3e8afb29c33d1
7
+ data.tar.gz: 4751105e4e348dd41598d9cb224f9aaf467c0773a726dd456abdfb5caeb73488d6bc097118d2904dcc14a5dd1a91a48ebc58b0387a4473640f7655f41717f3e7
@@ -22,9 +22,10 @@ module Postdoc
22
22
  client.send_cmd 'Page.navigate', url: "file://#{file_path}"
23
23
  client.wait_for 'Page.loadEventFired'
24
24
 
25
+ # prevent race condition
26
+ sleep 0.1 if settings.slow_pc
27
+
25
28
  response = client.send_cmd 'Page.printToPDF', settings.to_cmd
26
-
27
- client.send_cmd 'Browser.close'
28
29
 
29
30
  Base64.decode64 response['data']
30
31
  end
@@ -33,9 +34,11 @@ module Postdoc
33
34
  client.send_cmd 'Page.enable'
34
35
  client.send_cmd 'Page.navigate', url: "file://#{file_path}"
35
36
  client.wait_for 'Page.loadEventFired'
36
- response = client.send_cmd 'Page.printToPDF', settings.to_cmd
37
37
 
38
- client.send_cmd 'Browser.close'
38
+ # prevent race condition
39
+ sleep 0.1 if settings.slow_pc
40
+
41
+ response = client.send_cmd 'Page.printToPDF', settings.to_cmd
39
42
 
40
43
  Base64.decode64 response['data']
41
44
  end
@@ -2,6 +2,9 @@ module Postdoc
2
2
  # Different prints require different settings. This class is used instead of
3
3
  # passing options arguments throughout all of the code.
4
4
  class PrintSettings
5
+
6
+ attr_accessor :slow_pc
7
+
5
8
  def initialize(
6
9
  header_template: '',
7
10
  footer_template: '',
@@ -10,7 +13,8 @@ module Postdoc
10
13
  margin_top: 1,
11
14
  margin_bottom: 1,
12
15
  margin_left: 1,
13
- margin_right: 1
16
+ margin_right: 1,
17
+ slow_pc: false
14
18
  )
15
19
  @header_template = header_template
16
20
  @footer_template = footer_template
@@ -20,6 +24,7 @@ module Postdoc
20
24
  @margin_bottom = margin_bottom
21
25
  @margin_left = margin_left
22
26
  @margin_right = margin_right
27
+ @slow_pc = slow_pc
23
28
  end
24
29
 
25
30
  def to_cmd
data/lib/postdoc.rb CHANGED
@@ -9,7 +9,7 @@ require 'postdoc/batch'
9
9
 
10
10
  module Postdoc
11
11
  ActionController::Renderers.add :pdf do |_filename, options|
12
- Postdoc.render_from_string render_to_string(options), options
12
+ Postdoc.render_from_string render_to_string(options), &options
13
13
  end
14
14
 
15
15
  def self.render_from_string(content, **options)
@@ -20,6 +20,9 @@ module Postdoc
20
20
  .print_pdf_from_html(html_file.path,
21
21
  settings: print_settings)
22
22
  ensure
23
+ if server.client.client.present?
24
+ server.client.client.send_cmd 'Browser.close'
25
+ end
23
26
  server.kill
24
27
  html_file.cleanup
25
28
  end
@@ -41,6 +44,9 @@ module Postdoc
41
44
  server = ChromeProcess.new
42
45
  batch.result(server.client)
43
46
  ensure
47
+ if server.client.client.present?
48
+ server.client.client.send_cmd 'Browser.close'
49
+ end
44
50
  server.kill
45
51
  batch.cleanup
46
52
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: postdoc
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.3.8
4
+ version: 0.4.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Frank Groeneveld
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2021-07-19 00:00:00.000000000 Z
11
+ date: 2021-11-17 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: chrome_remote
@@ -33,7 +33,7 @@ dependencies:
33
33
  version: 4.0.0
34
34
  - - "<"
35
35
  - !ruby/object:Gem::Version
36
- version: '6.1'
36
+ version: '7.0'
37
37
  type: :runtime
38
38
  prerelease: false
39
39
  version_requirements: !ruby/object:Gem::Requirement
@@ -43,7 +43,7 @@ dependencies:
43
43
  version: 4.0.0
44
44
  - - "<"
45
45
  - !ruby/object:Gem::Version
46
- version: '6.1'
46
+ version: '7.0'
47
47
  - !ruby/object:Gem::Dependency
48
48
  name: mocha
49
49
  requirement: !ruby/object:Gem::Requirement