ghtml2pdf 0.3.1 → 0.4.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: 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: []