pixelpress 0.2.2 → 0.2.4

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: 011003bd8bae9e377c91423ac4a4c9647811047c040a23cf485513660adacf81
4
- data.tar.gz: 969a914641daaf5b94ceff56c70d8d16d79318d478bc65f9dc763a8d9ed9579d
3
+ metadata.gz: 782b07b9c03d277295111b77493c42006a0d7686e1e50979445d08e11a81edd6
4
+ data.tar.gz: a4c306828a2fc1eab01e293c1b95e6f5fa2f79cbe2dd7329bfa4e4155b253b7e
5
5
  SHA512:
6
- metadata.gz: 71e64d8ebe6bef11e0de5e2395ea0cb0a515699a5e7e4bb2ec4d119c381f81a3d6e4c51f9d1f85ea00884dd59ba02ffeb8427c0d28a8012c810e56fda9a3ce0d
7
- data.tar.gz: 98d14c0b42bf6c48a13dcebb6ed37322251d97d213c58f11622411a1f2cf55c381257939364144868499c50c0624c469f38557ce08ae53c3f27b107a7c9694dc
6
+ metadata.gz: b276bc5202e92cd37bb3f9b44562679d370fcdbe9ada8a904dc6a3554f5b2514ece4b8c3f9b4718934629ce9d3ffca011101152cbeb5708d2ca0a1fb9ec90716
7
+ data.tar.gz: 4f0c0c189702bbd2f7a117dff0c6e1d53e75a859790c3ea86b54b64ac2a08f7eb304de803caae6d88d38900dae3fa0dc717650a763e744e16a302526e18b8394
@@ -0,0 +1,16 @@
1
+ name: Publish to RubyGems
2
+ on:
3
+ release:
4
+ types: [created]
5
+ jobs:
6
+ gem:
7
+ runs-on: ubuntu-latest
8
+ steps:
9
+ - uses: actions/checkout@v2
10
+ - name: Set up Ruby
11
+ uses: ruby/setup-ruby@v1
12
+ - run: sed -i "s/0.0.1/$(echo $GITHUB_REF_NAME | cut -c 2-)/" lib/pixelpress/version.rb
13
+ - name: Publish gem
14
+ uses: dawidd6/action-publish-gem@v1
15
+ with:
16
+ api_key: ${{secrets.RUBYGEMS_API_KEY}}
@@ -0,0 +1,20 @@
1
+ name: Test
2
+
3
+ on: [push]
4
+
5
+ jobs:
6
+ test:
7
+ runs-on: ubuntu-latest
8
+ steps:
9
+ - uses: actions/checkout@v2
10
+ - name: Set up Ruby
11
+ uses: ruby/setup-ruby@v1
12
+ with:
13
+ bundler-cache: true
14
+ - name: Install dependencies
15
+ uses: awalsh128/cache-apt-pkgs-action@latest
16
+ with:
17
+ packages: weasyprint
18
+ version: 1.0
19
+ - name: Test
20
+ run: bundle exec rspec
data/.ruby-version ADDED
@@ -0,0 +1 @@
1
+ 3.1.4
data/Gemfile CHANGED
@@ -8,3 +8,4 @@ gem 'bundler'
8
8
  gem 'pry-byebug'
9
9
  gem 'rake'
10
10
  gem 'rspec', '~> 3.0'
11
+ gem 'generator_spec', '~> 0.9.3'
@@ -1,10 +1,10 @@
1
1
  module Pixelpress
2
2
  module InstanceInvocation
3
- def method_missing(m, *args, &block)
3
+ def method_missing(m, *args, **kwargs, &block)
4
4
  return super unless respond_to_missing?(m)
5
5
  instance = new
6
6
  instance.instance_variable_set :@template_name, m.to_s
7
- instance.send(m, *args)
7
+ instance.send(m, *args, **kwargs, &block)
8
8
  instance.document
9
9
  end
10
10
 
@@ -1,7 +1,29 @@
1
- require 'weasyprint'
2
-
3
1
  class Pixelpress::WeasyPrintRenderer
4
2
  def render(html)
5
- WeasyPrint.new(html).to_pdf
3
+
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
18
+ end
19
+
20
+ def version
21
+ `#{executable_path} --version`.chomp.scan(/(\d+\.\d+)/).flatten.first
22
+ end
23
+
24
+ private
25
+
26
+ def executable_path
27
+ `which weasyprint`.chomp || raise(StandardError, "could not find weasyprint")
6
28
  end
7
29
  end
@@ -1,28 +1,21 @@
1
1
  module Pixelpress
2
2
  module Rendering
3
- module ClassMethods
4
- attr_writer :default_renderer
5
- def default_renderer
6
- @default_renderer ||= WeasyPrintRenderer.new
7
- end
8
- end
3
+ extend ActiveSupport::Concern
4
+
5
+ included do
6
+ class_attribute :renderer, default: WeasyPrintRenderer.new
9
7
 
10
- def self.included(base)
11
- base.extend(ClassMethods)
12
- end
13
-
14
- def document
15
- @document ||= Document.new render_to_string(template), renderer, file_name: try(:file_name)
16
- end
17
-
18
- protected
8
+ def document
9
+ @document ||= Document.new render_to_string(template), renderer, file_name: try(:file_name)
10
+ end
19
11
 
20
- def renderer
21
- @renderer || self.class.default_renderer
22
- end
12
+ protected
13
+
14
+ delegate :renderer, to: :class
23
15
 
24
- def template
25
- ['printers', controller_path.sub('_printer', ''), @template_name].join('/')
16
+ def template
17
+ ['printers', controller_path.sub('_printer', ''), @template_name].join('/')
18
+ end
26
19
  end
27
20
  end
28
21
  end
@@ -1,3 +1,3 @@
1
1
  module Pixelpress
2
- VERSION = '0.2.2'.freeze
2
+ VERSION = '0.2.4'.freeze
3
3
  end
data/pixelpress.gemspec CHANGED
@@ -6,8 +6,8 @@ require 'pixelpress/version'
6
6
  Gem::Specification.new do |spec|
7
7
  spec.name = 'pixelpress'
8
8
  spec.version = Pixelpress::VERSION
9
- spec.authors = ['Alex']
10
- spec.email = ['aleksandra@nerdgeschoss.de']
9
+ spec.authors = ['Alex', 'Jens Ravens']
10
+ spec.email = ['aleksandra@nerdgeschoss.de', 'jens@nerdgeschoss.de']
11
11
 
12
12
  spec.summary = 'PDF printer'
13
13
  spec.homepage = 'https://github.com/nerdgeschoss/pixelpress'
@@ -21,6 +21,5 @@ Gem::Specification.new do |spec|
21
21
  spec.require_paths = ['lib']
22
22
 
23
23
  spec.add_dependency 'actionpack'
24
- spec.add_dependency 'weasyprint'
25
- spec.add_dependency 'generator_spec', '~> 0.9.3'
24
+ spec.add_dependency 'activesupport'
26
25
  end
metadata CHANGED
@@ -1,14 +1,15 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: pixelpress
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.2
4
+ version: 0.2.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - Alex
8
+ - Jens Ravens
8
9
  autorequire:
9
10
  bindir: exe
10
11
  cert_chain: []
11
- date: 2019-10-22 00:00:00.000000000 Z
12
+ date: 2023-10-25 00:00:00.000000000 Z
12
13
  dependencies:
13
14
  - !ruby/object:Gem::Dependency
14
15
  name: actionpack
@@ -25,7 +26,7 @@ dependencies:
25
26
  - !ruby/object:Gem::Version
26
27
  version: '0'
27
28
  - !ruby/object:Gem::Dependency
28
- name: weasyprint
29
+ name: activesupport
29
30
  requirement: !ruby/object:Gem::Requirement
30
31
  requirements:
31
32
  - - ">="
@@ -38,29 +39,19 @@ dependencies:
38
39
  - - ">="
39
40
  - !ruby/object:Gem::Version
40
41
  version: '0'
41
- - !ruby/object:Gem::Dependency
42
- name: generator_spec
43
- requirement: !ruby/object:Gem::Requirement
44
- requirements:
45
- - - "~>"
46
- - !ruby/object:Gem::Version
47
- version: 0.9.3
48
- type: :runtime
49
- prerelease: false
50
- version_requirements: !ruby/object:Gem::Requirement
51
- requirements:
52
- - - "~>"
53
- - !ruby/object:Gem::Version
54
- version: 0.9.3
55
42
  description:
56
43
  email:
57
44
  - aleksandra@nerdgeschoss.de
45
+ - jens@nerdgeschoss.de
58
46
  executables: []
59
47
  extensions: []
60
48
  extra_rdoc_files: []
61
49
  files:
50
+ - ".github/workflows/publish.yml"
51
+ - ".github/workflows/test.yml"
62
52
  - ".gitignore"
63
53
  - ".rspec"
54
+ - ".ruby-version"
64
55
  - Gemfile
65
56
  - LICENSE.txt
66
57
  - README.md
@@ -69,7 +60,6 @@ files:
69
60
  - app/views/pixelpress/printers/index.html.erb
70
61
  - bin/console
71
62
  - bin/setup
72
- - bundle
73
63
  - config/routes.rb
74
64
  - lib/generators/pixelpress/printer/USAGE
75
65
  - lib/generators/pixelpress/printer/printer_generator.rb
@@ -113,7 +103,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
113
103
  - !ruby/object:Gem::Version
114
104
  version: '0'
115
105
  requirements: []
116
- rubygems_version: 3.0.4
106
+ rubygems_version: 3.3.26
117
107
  signing_key:
118
108
  specification_version: 4
119
109
  summary: PDF printer
data/bundle DELETED
File without changes