ghtml2pdf 0.3.1 → 0.4.0

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: 229a1befa8bf3ebf42c2a3b0a17edab374f36f4de9f499b3241c95d3b1df4867
4
- data.tar.gz: e6ff7ed56a72b9ba4ad125e7596cda9d5ed1677bd7447aa3d283e32edf501018
3
+ metadata.gz: d8ed90969dd11591a30db9663b9b3de084cca0ca4206e19db2979bdc52866441
4
+ data.tar.gz: b12829fe5f6dff6132d1a04d43c3ab8bde1820b35238b4104a27c9ec5d0093f4
5
5
  SHA512:
6
- metadata.gz: 5f518ea7242c21cd69ec4c2906163ad47361c9e08448af6b46642b6373900b798769c5e4ab0da9db383f82e2f57dee46de593f3ca27d63f803e707de73c499bb
7
- data.tar.gz: d8e027ed88affaf5d84739e5872a25e61c35a394c6af9cf3add08d619b2b39966502cfa1a5d55fd7f81d4b85e6c8fbf50de149208200046ab06fe6ebca063ab8
6
+ metadata.gz: 5737bba0d02f6dfb85758b8451285109a5f093bec53cabd0bdcaaa06ab300f2cc816d3c95bd6270f600eb970ca812bb3b413d45db07a32ef119dbeb110e469bd
7
+ data.tar.gz: 76c6ea83c528d5ea9d191cffc93f5836eae568a481346e1bba8566b4c02f2620b23bdc3a5a51eb41d96423e0169f1685b1f8252e7c76407fa6eb72af03e07c6c
data/Changelog.md CHANGED
@@ -1,5 +1,11 @@
1
1
  # Changelog
2
2
 
3
+ ## 0.4.0 / 2021-08-11
4
+
5
+ * Target Ruby 2.5 and up
6
+ * Update dependency on GirFFI-Gtk and GirFFI
7
+ * Stop using Headless; This gem now needs an active graphical session to run
8
+
3
9
  ## 0.3.1 / 2019-02-13
4
10
 
5
11
  * Update dependency on GirFFI-Gtk
data/README.md CHANGED
@@ -44,12 +44,13 @@ Or install it yourself as:
44
44
 
45
45
  $ gem install ghtml2pdf
46
46
 
47
- You will also need to install the WebKit2GTK+, the Gtk+ bindings for WebKit2,
48
- and gobject-introspection.
47
+ You will also need to install WebKit2GTK+, the Gtk+ bindings for WebKit2,
48
+ and GObject Introspection. You should probably also install AT-Spi 2 to
49
+ avoid some annoying warning messages.
49
50
 
50
51
  On Debian and Ubuntu, this can be accomplished by installing the packages
51
- `libgirepository1.0-dev`, `gobject-introspection` should be enough to get
52
- `rake test` working.
52
+ `libgirepository-1.0-1`, `gir1.2-gtk-3.0`, `gir1.2-webkit2-3.0` or
53
+ `gir1.2-webkit2-4.0`, and `at-spi2-core`. You may also need to install ...
53
54
 
54
55
  ## Usage
55
56
 
data/bin/ghtml2pdf CHANGED
@@ -1,9 +1,6 @@
1
1
  #!/usr/bin/env ruby
2
2
  # frozen_string_literal: true
3
3
 
4
- require 'ghtml2pdf'
5
- require 'headless'
4
+ require "ghtml2pdf"
6
5
 
7
- Headless.ly do
8
- GHtml2Pdf.run(ARGV)
9
- end
6
+ GHtml2Pdf.run(ARGV)
data/lib/ghtml2pdf.rb CHANGED
@@ -1,7 +1,7 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require 'ghtml2pdf/version'
4
- require 'ghtml2pdf/application'
3
+ require "ghtml2pdf/version"
4
+ require "ghtml2pdf/application"
5
5
 
6
6
  # Main entry point for GHtml2Pdf.
7
7
  module GHtml2Pdf
@@ -1,8 +1,8 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require 'gir_ffi-gtk3'
4
- require_relative 'argument_parser'
5
- require_relative 'print_settings'
3
+ require "gir_ffi-gtk3"
4
+ require "ghtml2pdf/argument_parser"
5
+ require "ghtml2pdf/print_settings"
6
6
 
7
7
  GirFFI.setup :WebKit2
8
8
 
@@ -16,7 +16,7 @@ module GHtml2Pdf
16
16
  end
17
17
 
18
18
  def run
19
- setup_load_handler
19
+ setup_signal_handlers
20
20
  load_uri
21
21
  Gtk.main
22
22
  destroy_view
@@ -26,15 +26,17 @@ module GHtml2Pdf
26
26
 
27
27
  attr_reader :argument_parser
28
28
 
29
- def setup_load_handler
30
- web_view.signal_connect 'load-changed' do |_, event, _|
29
+ def setup_signal_handlers
30
+ web_view.signal_connect "load-changed" do |_, event, _|
31
31
  case event
32
32
  when :finished
33
33
  print_operation.print
34
- sleep 2
35
- Gtk.main_quit
36
34
  end
37
35
  end
36
+
37
+ print_operation.signal_connect "finished" do |*_args|
38
+ Gtk.main_quit
39
+ end
38
40
  end
39
41
 
40
42
  def load_uri
@@ -46,23 +48,23 @@ module GHtml2Pdf
46
48
  end
47
49
 
48
50
  def top_margin
49
- @top_margin ||= argument_parser.top_margin || Unit.new('2cm')
51
+ @top_margin ||= argument_parser.top_margin || Unit.new("2cm")
50
52
  end
51
53
 
52
54
  def bottom_margin
53
- @bottom_margin ||= argument_parser.bottom_margin || Unit.new('3cm')
55
+ @bottom_margin ||= argument_parser.bottom_margin || Unit.new("3cm")
54
56
  end
55
57
 
56
58
  def left_margin
57
- @left_margin ||= argument_parser.left_margin || Unit.new('2cm')
59
+ @left_margin ||= argument_parser.left_margin || Unit.new("2cm")
58
60
  end
59
61
 
60
62
  def right_margin
61
- @right_margin ||= argument_parser.right_margin || Unit.new('2cm')
63
+ @right_margin ||= argument_parser.right_margin || Unit.new("2cm")
62
64
  end
63
65
 
64
66
  def print_operation
65
- WebKit2::PrintOperation.new(web_view).tap do |operation|
67
+ @print_operation ||= WebKit2::PrintOperation.new(web_view).tap do |operation|
66
68
  operation.page_setup = page_setup
67
69
  operation.print_settings = print_settings
68
70
  end
@@ -79,19 +81,19 @@ module GHtml2Pdf
79
81
  end
80
82
 
81
83
  def top_margin_in_mm
82
- top_margin.convert_to('mm').scalar
84
+ top_margin.convert_to("mm").scalar
83
85
  end
84
86
 
85
87
  def bottom_margin_in_mm
86
- bottom_margin.convert_to('mm').scalar
88
+ bottom_margin.convert_to("mm").scalar
87
89
  end
88
90
 
89
91
  def left_margin_in_mm
90
- left_margin.convert_to('mm').scalar
92
+ left_margin.convert_to("mm").scalar
91
93
  end
92
94
 
93
95
  def right_margin_in_mm
94
- right_margin.convert_to('mm').scalar
96
+ right_margin.convert_to("mm").scalar
95
97
  end
96
98
 
97
99
  def default_web_context
@@ -1,7 +1,7 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require 'optparse'
4
- require 'ruby-units'
3
+ require "optparse"
4
+ require "ruby-units"
5
5
 
6
6
  module GHtml2Pdf
7
7
  # Error class raised for missing arguments
@@ -9,8 +9,7 @@ module GHtml2Pdf
9
9
 
10
10
  # Parses the command line arguments
11
11
  class ArgumentParser
12
- attr_reader :input, :output
13
- attr_reader :top_margin, :bottom_margin, :left_margin, :right_margin
12
+ attr_reader :input, :output, :top_margin, :bottom_margin, :left_margin, :right_margin
14
13
 
15
14
  def initialize(argv)
16
15
  setup_banner
@@ -18,8 +17,8 @@ module GHtml2Pdf
18
17
  setup_help_message
19
18
  parser.parse! argv
20
19
  @input, @output, = argv
21
- raise MissingArgument, 'An input filename is required' unless @input
22
- raise MissingArgument, 'An output filename is required' unless @output
20
+ raise MissingArgument, "An input filename is required" unless @input
21
+ raise MissingArgument, "An output filename is required" unless @output
23
22
  end
24
23
 
25
24
  private
@@ -33,14 +32,18 @@ module GHtml2Pdf
33
32
  end
34
33
 
35
34
  def setup_margin_options
36
- parser.on('--top-margin MARGIN', 'Set top margin') { |val| self.top_margin = val }
37
- parser.on('--bottom-margin MARGIN', 'Set bottom margin') { |val| self.bottom_margin = val }
38
- parser.on('--left-margin MARGIN', 'Set left margin') { |val| self.left_margin = val }
39
- parser.on('--right-margin MARGIN', 'Set right margin') { |val| self.right_margin = val }
35
+ parser.on("--top-margin MARGIN", "Set top margin") { |val| self.top_margin = val }
36
+ parser.on("--bottom-margin MARGIN", "Set bottom margin") do |val|
37
+ self.bottom_margin = val
38
+ end
39
+ parser.on("--left-margin MARGIN", "Set left margin") { |val| self.left_margin = val }
40
+ parser.on("--right-margin MARGIN", "Set right margin") do |val|
41
+ self.right_margin = val
42
+ end
40
43
  end
41
44
 
42
45
  def setup_help_message
43
- parser.on_tail('-h', '--help', 'Show this message') do
46
+ parser.on_tail("-h", "--help", "Show this message") do
44
47
  puts parser
45
48
  exit
46
49
  end
@@ -1,6 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require 'gir_ffi-gtk3'
3
+ require "gir_ffi-gtk3"
4
4
 
5
5
  module GHtml2Pdf
6
6
  # Specialized PrintSettings class for printing to a file.
@@ -10,16 +10,16 @@ module GHtml2Pdf
10
10
  set_number_up 1
11
11
  set_reverse false
12
12
  set_print_pages :all
13
- set 'output-file-format', 'pdf'
13
+ set "output-file-format", "pdf"
14
14
  set_collate false
15
15
  set_n_copies 1
16
- set_printer 'Print to File'
16
+ set_printer "Print to File"
17
17
  set_page_set :all
18
18
  set_scale 100.0
19
19
  end
20
20
 
21
21
  def output_uri=(uri)
22
- set 'output-uri', uri
22
+ set "output-uri", uri
23
23
  end
24
24
  end
25
25
  end
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module GHtml2Pdf
4
- VERSION = '0.3.1'
4
+ VERSION = "0.4.0"
5
5
  end
metadata CHANGED
@@ -1,43 +1,43 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: ghtml2pdf
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.3.1
4
+ version: 0.4.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Matijs van Zuijlen
8
- autorequire:
8
+ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2019-02-13 00:00:00.000000000 Z
11
+ date: 2021-08-11 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
- name: gir_ffi-gtk
14
+ name: gir_ffi
15
15
  requirement: !ruby/object:Gem::Requirement
16
16
  requirements:
17
17
  - - "~>"
18
18
  - !ruby/object:Gem::Version
19
- version: 0.14.0
19
+ version: 0.15.2
20
20
  type: :runtime
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
24
  - - "~>"
25
25
  - !ruby/object:Gem::Version
26
- version: 0.14.0
26
+ version: 0.15.2
27
27
  - !ruby/object:Gem::Dependency
28
- name: headless
28
+ name: gir_ffi-gtk
29
29
  requirement: !ruby/object:Gem::Requirement
30
30
  requirements:
31
31
  - - "~>"
32
32
  - !ruby/object:Gem::Version
33
- version: 2.3.0
33
+ version: 0.15.0
34
34
  type: :runtime
35
35
  prerelease: false
36
36
  version_requirements: !ruby/object:Gem::Requirement
37
37
  requirements:
38
38
  - - "~>"
39
39
  - !ruby/object:Gem::Version
40
- version: 2.3.0
40
+ version: 0.15.0
41
41
  - !ruby/object:Gem::Dependency
42
42
  name: ruby-units
43
43
  requirement: !ruby/object:Gem::Requirement
@@ -58,70 +58,70 @@ dependencies:
58
58
  requirements:
59
59
  - - "~>"
60
60
  - !ruby/object:Gem::Version
61
- version: 0.14.0
61
+ version: '2.0'
62
62
  type: :development
63
63
  prerelease: false
64
64
  version_requirements: !ruby/object:Gem::Requirement
65
65
  requirements:
66
66
  - - "~>"
67
67
  - !ruby/object:Gem::Version
68
- version: 0.14.0
68
+ version: '2.0'
69
69
  - !ruby/object:Gem::Dependency
70
- name: bundler
70
+ name: cucumber
71
71
  requirement: !ruby/object:Gem::Requirement
72
72
  requirements:
73
73
  - - "~>"
74
74
  - !ruby/object:Gem::Version
75
- version: '1.7'
75
+ version: '7.0'
76
76
  type: :development
77
77
  prerelease: false
78
78
  version_requirements: !ruby/object:Gem::Requirement
79
79
  requirements:
80
80
  - - "~>"
81
81
  - !ruby/object:Gem::Version
82
- version: '1.7'
82
+ version: '7.0'
83
83
  - !ruby/object:Gem::Dependency
84
- name: cucumber
84
+ name: pdf-reader
85
85
  requirement: !ruby/object:Gem::Requirement
86
86
  requirements:
87
87
  - - "~>"
88
88
  - !ruby/object:Gem::Version
89
- version: '3.0'
89
+ version: 2.5.0
90
90
  type: :development
91
91
  prerelease: false
92
92
  version_requirements: !ruby/object:Gem::Requirement
93
93
  requirements:
94
94
  - - "~>"
95
95
  - !ruby/object:Gem::Version
96
- version: '3.0'
96
+ version: 2.5.0
97
97
  - !ruby/object:Gem::Dependency
98
- name: pdf-reader
98
+ name: rake
99
99
  requirement: !ruby/object:Gem::Requirement
100
100
  requirements:
101
101
  - - "~>"
102
102
  - !ruby/object:Gem::Version
103
- version: 2.2.0
103
+ version: '13.0'
104
104
  type: :development
105
105
  prerelease: false
106
106
  version_requirements: !ruby/object:Gem::Requirement
107
107
  requirements:
108
108
  - - "~>"
109
109
  - !ruby/object:Gem::Version
110
- version: 2.2.0
110
+ version: '13.0'
111
111
  - !ruby/object:Gem::Dependency
112
- name: rake
112
+ name: rake-manifest
113
113
  requirement: !ruby/object:Gem::Requirement
114
114
  requirements:
115
115
  - - "~>"
116
116
  - !ruby/object:Gem::Version
117
- version: '12.0'
117
+ version: 0.2.0
118
118
  type: :development
119
119
  prerelease: false
120
120
  version_requirements: !ruby/object:Gem::Requirement
121
121
  requirements:
122
122
  - - "~>"
123
123
  - !ruby/object:Gem::Version
124
- version: '12.0'
124
+ version: 0.2.0
125
125
  - !ruby/object:Gem::Dependency
126
126
  name: rspec
127
127
  requirement: !ruby/object:Gem::Requirement
@@ -136,8 +136,64 @@ dependencies:
136
136
  - - "~>"
137
137
  - !ruby/object:Gem::Version
138
138
  version: '3.3'
139
- description: "\n Clean Ruby implemenentation of a HTML to PDF\n converter based
140
- on WebKit, WebKit2GTK+ and GirFFI\n "
139
+ - !ruby/object:Gem::Dependency
140
+ name: rubocop
141
+ requirement: !ruby/object:Gem::Requirement
142
+ requirements:
143
+ - - "~>"
144
+ - !ruby/object:Gem::Version
145
+ version: 1.18.1
146
+ type: :development
147
+ prerelease: false
148
+ version_requirements: !ruby/object:Gem::Requirement
149
+ requirements:
150
+ - - "~>"
151
+ - !ruby/object:Gem::Version
152
+ version: 1.18.1
153
+ - !ruby/object:Gem::Dependency
154
+ name: rubocop-packaging
155
+ requirement: !ruby/object:Gem::Requirement
156
+ requirements:
157
+ - - "~>"
158
+ - !ruby/object:Gem::Version
159
+ version: 0.5.0
160
+ type: :development
161
+ prerelease: false
162
+ version_requirements: !ruby/object:Gem::Requirement
163
+ requirements:
164
+ - - "~>"
165
+ - !ruby/object:Gem::Version
166
+ version: 0.5.0
167
+ - !ruby/object:Gem::Dependency
168
+ name: rubocop-performance
169
+ requirement: !ruby/object:Gem::Requirement
170
+ requirements:
171
+ - - "~>"
172
+ - !ruby/object:Gem::Version
173
+ version: 1.11.0
174
+ type: :development
175
+ prerelease: false
176
+ version_requirements: !ruby/object:Gem::Requirement
177
+ requirements:
178
+ - - "~>"
179
+ - !ruby/object:Gem::Version
180
+ version: 1.11.0
181
+ - !ruby/object:Gem::Dependency
182
+ name: rubocop-rspec
183
+ requirement: !ruby/object:Gem::Requirement
184
+ requirements:
185
+ - - "~>"
186
+ - !ruby/object:Gem::Version
187
+ version: 2.4.0
188
+ type: :development
189
+ prerelease: false
190
+ version_requirements: !ruby/object:Gem::Requirement
191
+ requirements:
192
+ - - "~>"
193
+ - !ruby/object:Gem::Version
194
+ version: 2.4.0
195
+ description: Clean Ruby implemenentation of a HTML to PDF converter based on WebKit,
196
+ WebKit2GTK+ and GirFFI
141
197
  email:
142
198
  - matijs@matijs.net
143
199
  executables:
@@ -157,8 +213,11 @@ files:
157
213
  homepage: https://github.com/mvz/ghtml2pdf
158
214
  licenses:
159
215
  - MIT
160
- metadata: {}
161
- post_install_message:
216
+ metadata:
217
+ homepage_uri: https://github.com/mvz/ghtml2pdf
218
+ source_code_uri: https://github.com/mvz/ghtml2pdf
219
+ changelog_uri: https://github.com/mvz/ghtml2pdf/blob/master/Changelog.md
220
+ post_install_message:
162
221
  rdoc_options: []
163
222
  require_paths:
164
223
  - lib
@@ -166,15 +225,15 @@ required_ruby_version: !ruby/object:Gem::Requirement
166
225
  requirements:
167
226
  - - ">="
168
227
  - !ruby/object:Gem::Version
169
- version: 2.3.0
228
+ version: 2.5.0
170
229
  required_rubygems_version: !ruby/object:Gem::Requirement
171
230
  requirements:
172
231
  - - ">="
173
232
  - !ruby/object:Gem::Version
174
233
  version: '0'
175
234
  requirements: []
176
- rubygems_version: 3.0.1
177
- signing_key:
235
+ rubygems_version: 3.2.22
236
+ signing_key:
178
237
  specification_version: 4
179
238
  summary: HTML to PDF converter based on WebKit2GTK+
180
239
  test_files: []