pixelpress 0.2.4 → 0.3.1

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: 782b07b9c03d277295111b77493c42006a0d7686e1e50979445d08e11a81edd6
4
- data.tar.gz: a4c306828a2fc1eab01e293c1b95e6f5fa2f79cbe2dd7329bfa4e4155b253b7e
3
+ metadata.gz: 72fc075971593953c3a7056f7001d50348f9b8d685ad08fe96b80dcd4151436a
4
+ data.tar.gz: 72c713f2b2aa16d3437bf0ed335d158cfd32048487aa5626a4236976c3cbe76c
5
5
  SHA512:
6
- metadata.gz: b276bc5202e92cd37bb3f9b44562679d370fcdbe9ada8a904dc6a3554f5b2514ece4b8c3f9b4718934629ce9d3ffca011101152cbeb5708d2ca0a1fb9ec90716
7
- data.tar.gz: 4f0c0c189702bbd2f7a117dff0c6e1d53e75a859790c3ea86b54b64ac2a08f7eb304de803caae6d88d38900dae3fa0dc717650a763e744e16a302526e18b8394
6
+ metadata.gz: d89b7c28c2a0a9193281eb5d1b8c3e9da7bc100772a41628c5c85b9ba3216e3ff6f00de6c9566238dfc63e9cf9dde026efe7c6c1c0d5e7aeb926ff634c5ba9eb
7
+ data.tar.gz: 56c91b7091209f81d7447de720c3b5ffa3e523a89599a23c6363434866d14fa6f671aab7bfb2504c895647878c7b2a78d8fbe47e045df69f025d0764847b36ba
data/Gemfile CHANGED
@@ -4,6 +4,7 @@ source 'https://rubygems.org'
4
4
  gemspec
5
5
 
6
6
  gem 'activemodel'
7
+ gem 'pdf-reader'
7
8
  gem 'bundler'
8
9
  gem 'pry-byebug'
9
10
  gem 'rake'
@@ -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, "--encoding", "utf-8", 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.1'.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.1
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-23 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