pixelpress 0.2.4 → 0.3.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: 782b07b9c03d277295111b77493c42006a0d7686e1e50979445d08e11a81edd6
4
- data.tar.gz: a4c306828a2fc1eab01e293c1b95e6f5fa2f79cbe2dd7329bfa4e4155b253b7e
3
+ metadata.gz: adc5a273dadf8a91499b4b7e9806fad56acbb8d26c88766d1839fa1e02b9a8a7
4
+ data.tar.gz: 16bd1a61566e8ff80fd8c7f7da1349d4a61e2768ebf1bc32ee2994f72ce97483
5
5
  SHA512:
6
- metadata.gz: b276bc5202e92cd37bb3f9b44562679d370fcdbe9ada8a904dc6a3554f5b2514ece4b8c3f9b4718934629ce9d3ffca011101152cbeb5708d2ca0a1fb9ec90716
7
- data.tar.gz: 4f0c0c189702bbd2f7a117dff0c6e1d53e75a859790c3ea86b54b64ac2a08f7eb304de803caae6d88d38900dae3fa0dc717650a763e744e16a302526e18b8394
6
+ metadata.gz: e1a3d1f8bcfa3fc497822885fc9c291a4d61da81200fbc541b95938bd7d8fb25a852d60f2d35fcbcd539006a3bc830b8016a8f693d6b86993727c166d2467ba1
7
+ data.tar.gz: cc584c23b2e0ffba1608e6cc984e718b9689c6d5e4a7357eb6bff244bc5da1feb79590ac321468fb4865773260c1ba54a6085e062caedf304029c23a8394c17a
@@ -1,26 +1,23 @@
1
- require_relative 'fake_file'
2
-
3
1
  module Pixelpress
4
2
  class Document
5
- attr_reader :html
6
- attr_reader :file_name
3
+ attr_reader :filename
7
4
 
8
- def initialize(html, renderer, options = {})
9
- @html = html
5
+ def initialize(file, renderer, options = {})
6
+ @file = file
10
7
  @renderer = renderer
11
- @file_name = options[:file_name]
8
+ @filename = options[:filename]
9
+ end
10
+
11
+ def html
12
+ file.read
12
13
  end
13
14
 
14
15
  def pdf
15
- FakeFile.new pdf_data, original_filename: file_name
16
+ @pdf ||= renderer.render(file)
16
17
  end
17
18
 
18
19
  private
19
20
 
20
- attr_accessor :renderer
21
-
22
- def pdf_data
23
- @pdf_data ||= renderer.render(html)
24
- end
21
+ attr_accessor :renderer, :file
25
22
  end
26
23
  end
@@ -1,5 +1,5 @@
1
1
  class Pixelpress::TestRenderer
2
- def render(html)
3
- File.binread(File.join(__dir__, "test.pdf"))
2
+ def render(_)
3
+ File.open(File.join(__dir__, "test.pdf"))
4
4
  end
5
5
  end
@@ -1,20 +1,9 @@
1
1
  class Pixelpress::WeasyPrintRenderer
2
- def render(html)
2
+ def render(input)
3
+ output = Tempfile.new
3
4
 
4
- command = "#{executable_path} --encoding UTF-8 - -"
5
-
6
- error = nil
7
- result = nil
8
- process = nil
9
- Open3.popen3(command) do |stdin, stdout, stderr, thread|
10
- stdin.puts html
11
- stdin.close_write
12
- result = stdout.read
13
- error = stderr.read
14
- process = thread.value
15
- end
16
- raise "command failed (exitstatus=#{result.exitstatus}): #{command}\n #{error}" unless process.success?
17
- return result
5
+ system executable_path, input.path, output.path, exception: true
6
+ return output
18
7
  end
19
8
 
20
9
  def version
@@ -6,7 +6,12 @@ module Pixelpress
6
6
  class_attribute :renderer, default: WeasyPrintRenderer.new
7
7
 
8
8
  def document
9
- @document ||= Document.new render_to_string(template), renderer, file_name: try(:file_name)
9
+ @document ||= begin
10
+ file = Tempfile.new
11
+ file.write render_to_string(template)
12
+ file.rewind
13
+ Document.new file, renderer, filename: (try(:filename) || try(:file_name))
14
+ end
10
15
  end
11
16
 
12
17
  protected
@@ -1,3 +1,3 @@
1
1
  module Pixelpress
2
- VERSION = '0.2.4'.freeze
2
+ VERSION = '0.3.0'.freeze
3
3
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: pixelpress
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.4
4
+ version: 0.3.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Alex
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: exe
11
11
  cert_chain: []
12
- date: 2023-10-25 00:00:00.000000000 Z
12
+ date: 2024-05-14 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: actionpack
@@ -75,7 +75,6 @@ files:
75
75
  - lib/pixelpress/base.rb
76
76
  - lib/pixelpress/document.rb
77
77
  - lib/pixelpress/engine.rb
78
- - lib/pixelpress/fake_file.rb
79
78
  - lib/pixelpress/instance_invocation.rb
80
79
  - lib/pixelpress/preview.rb
81
80
  - lib/pixelpress/renderers/test.pdf
@@ -1,19 +0,0 @@
1
- module Pixelpress
2
- class FakeFile < StringIO
3
- attr_accessor :original_filename, :content_type
4
-
5
- def initialize(data, options = {})
6
- @original_filename = options[:original_filename]
7
- @content_type = options[:content_type]
8
- super data
9
- end
10
-
11
- def original_filename
12
- @original_filename || "document.pdf"
13
- end
14
-
15
- def content_type
16
- @content_type || "application/pdf"
17
- end
18
- end
19
- end