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 +4 -4
- data/Gemfile +1 -0
- data/lib/pixelpress/document.rb +10 -13
- data/lib/pixelpress/renderers/test_renderer.rb +2 -2
- data/lib/pixelpress/renderers/weasyprint_renderer.rb +4 -15
- data/lib/pixelpress/rendering.rb +6 -1
- data/lib/pixelpress/version.rb +1 -1
- metadata +2 -3
- data/lib/pixelpress/fake_file.rb +0 -19
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 72fc075971593953c3a7056f7001d50348f9b8d685ad08fe96b80dcd4151436a
|
4
|
+
data.tar.gz: 72c713f2b2aa16d3437bf0ed335d158cfd32048487aa5626a4236976c3cbe76c
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: d89b7c28c2a0a9193281eb5d1b8c3e9da7bc100772a41628c5c85b9ba3216e3ff6f00de6c9566238dfc63e9cf9dde026efe7c6c1c0d5e7aeb926ff634c5ba9eb
|
7
|
+
data.tar.gz: 56c91b7091209f81d7447de720c3b5ffa3e523a89599a23c6363434866d14fa6f671aab7bfb2504c895647878c7b2a78d8fbe47e045df69f025d0764847b36ba
|
data/Gemfile
CHANGED
data/lib/pixelpress/document.rb
CHANGED
@@ -1,26 +1,23 @@
|
|
1
|
-
require_relative 'fake_file'
|
2
|
-
|
3
1
|
module Pixelpress
|
4
2
|
class Document
|
5
|
-
attr_reader :
|
6
|
-
attr_reader :file_name
|
3
|
+
attr_reader :filename
|
7
4
|
|
8
|
-
def initialize(
|
9
|
-
@
|
5
|
+
def initialize(file, renderer, options = {})
|
6
|
+
@file = file
|
10
7
|
@renderer = renderer
|
11
|
-
@
|
8
|
+
@filename = options[:filename]
|
9
|
+
end
|
10
|
+
|
11
|
+
def html
|
12
|
+
file.read
|
12
13
|
end
|
13
14
|
|
14
15
|
def pdf
|
15
|
-
|
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,20 +1,9 @@
|
|
1
1
|
class Pixelpress::WeasyPrintRenderer
|
2
|
-
def render(
|
2
|
+
def render(input)
|
3
|
+
output = Tempfile.new
|
3
4
|
|
4
|
-
|
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
|
data/lib/pixelpress/rendering.rb
CHANGED
@@ -6,7 +6,12 @@ module Pixelpress
|
|
6
6
|
class_attribute :renderer, default: WeasyPrintRenderer.new
|
7
7
|
|
8
8
|
def document
|
9
|
-
@document ||=
|
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
|
data/lib/pixelpress/version.rb
CHANGED
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.
|
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:
|
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
|
data/lib/pixelpress/fake_file.rb
DELETED
@@ -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
|