postdoc 0.3.9 → 0.4.3

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: c8805f0d630a0bb6aacb1370839faec84c781d556c0f2f21a62f82cfb0127513
4
- data.tar.gz: b0767fa2999a50cab5aa58204e4c43c16e38c0ee941c1389660c35cf6062fb15
3
+ metadata.gz: 169bd209c29ab593e3b3f71b3f4e121e3c4ac9c3038d6e2a5fd913dd2072310c
4
+ data.tar.gz: 7323d434105f4fb27c25a79536b6fa682cc4f9173e8b4fd045fbe1f99dba0f5d
5
5
  SHA512:
6
- metadata.gz: 9dbb3519424aef59b75c1951599be4a91e1b9fc722c5ef75e0dd9197cd58f8f455f0db5cc0e0bcfe9efb076c8797fc8fab48d6d745cd91a5b31bf7ea97c26769
7
- data.tar.gz: 8c33f0a51a2127c1289095c6e43031e7fa988b410da1c94aa14d7caa1b33185398553000ef5e2ca4836a7cdcc77be5339aa9a71f2f70991f36228050df190870
6
+ metadata.gz: 198715fef5ad66dcb0dedfb97b60059cb5b46da517275ac016e9925b800e11d7d8d928f1915d97ed700a7da0be803a64657b38873903e15ba86599b36c327ae1
7
+ data.tar.gz: a52e8ec43a706fecb2bb61549b054c3c8d001f98b3ca22569df2627d25c91455eb479f2a3d3c4cc9e06d3722a29e9a65be84d0bfc54ce80169f7abd08e9ece78
@@ -5,7 +5,7 @@ module Postdoc
5
5
  class ChromeProcess
6
6
  attr_reader :pid, :port
7
7
 
8
- def initialize(port: Random.rand(65_535 - 1024), **_options)
8
+ def initialize(port: Random.rand(1025..65535), **_options)
9
9
  @port = port
10
10
  @pid = Process.spawn "chrome --remote-debugging-port=#{port} --headless",
11
11
  out: File::NULL, err: File::NULL
@@ -22,6 +22,9 @@ 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
29
 
27
30
  Base64.decode64 response['data']
@@ -31,6 +34,10 @@ module Postdoc
31
34
  client.send_cmd 'Page.enable'
32
35
  client.send_cmd 'Page.navigate', url: "file://#{file_path}"
33
36
  client.wait_for 'Page.loadEventFired'
37
+
38
+ # prevent race condition
39
+ sleep 0.1 if settings.slow_pc
40
+
34
41
  response = client.send_cmd 'Page.printToPDF', settings.to_cmd
35
42
 
36
43
  Base64.decode64 response['data']
@@ -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)
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.9
4
+ version: 0.4.3
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-12-21 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