gkhtmltopdf 1.1.0 → 1.1.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: 693828b2a9f004f9038b744c5d4a527a46f27ca55ad7c3d4638478aa2a747ade
4
- data.tar.gz: 418727b131d4305641bcb66df639c961aabc73de334fd599b06d772f2b0557ba
3
+ metadata.gz: 074bccbef46db0aaa81947a06ea1a1d7022b75a4916dec8d76751b96bfbc607f
4
+ data.tar.gz: bd007b02950a0e01a6cb1a0a68c30e3f5f16604f0489568bef0899f5f2d1e84d
5
5
  SHA512:
6
- metadata.gz: 8776f073004b0e5dba496316e4c95e18121784be2430b12f679dc900cfee41e7002befda8fe022f30739e8bdf33c76ce7c51cd625ed5e5095cc95f4eb60b4d3f
7
- data.tar.gz: 3df53840690e009d5c39a18710867505eff22e0bbb0d6711dfc6f8cc44a73442c02f1d6f5b5c1c3ac9f5c5c327f61d377bbab9a73dafea0124ff4a20e378426b
6
+ metadata.gz: e359baec50a11f2276bd1354269c59667091bbf12f9285d219616569b266f18a63c40be1349667ee7cefd5550109b93c9757705a8135dd15152762c6ab98c09c
7
+ data.tar.gz: 2fe00c3971f0354310bbc946531eb6facb107c7649f0d191b0210ea2fd683a726cabe18613053d498ded52558eb92791a0c522bb87f16f7ad77220c72faf075b
data/CHANGELOG.md CHANGED
@@ -2,6 +2,10 @@
2
2
 
3
3
  All noteworthy changes to this project will be documented in this file.
4
4
 
5
+ ## 1.1.1 / 2026-06-29
6
+
7
+ - GeckodriverのSTDOUT/STDERR追加
8
+
5
9
  ## 1.1.0 / 2026-06-29
6
10
 
7
11
  - UA設定機能の追加
data/README.md CHANGED
@@ -8,7 +8,6 @@ This gem converts HTML to PDF using Firefox's Geckodriver.
8
8
  [![Gem Version](https://badge.fury.io/rb/gkhtmltopdf.svg)](https://badge.fury.io/rb/gkhtmltopdf)
9
9
  ![Gem Total Downloads](https://img.shields.io/gem/dt/gkhtmltopdf)
10
10
  ![GitHub License](https://img.shields.io/github/license/fantasia-tech/gkhtmltopdf-rb)
11
- ![Rspec](https://github.com/fantasia-tech/gkhtmltopdf-rb/actions/workflows/main.yml/badge.svg)
12
11
 
13
12
  ---
14
13
 
data/TODO.md CHANGED
@@ -22,6 +22,10 @@
22
22
  - [x] UA設定機能の追加
23
23
  - [x] mktmpdirの明示的な削除
24
24
 
25
+ ## 完了 v1.1.1
26
+
27
+ - [x] GeckodriverのSTDOUT/STDERR追加
28
+
25
29
  ## つぎ v1.2.0
26
30
 
27
31
  - [ ] 設定のStruct化?(default切り出し)
@@ -1,4 +1,3 @@
1
- # escape=\
2
1
  # syntax=docker/dockerfile:1.7
3
2
  FROM ruby:3.2-slim
4
3
 
@@ -1,3 +1,4 @@
1
+ # syntax=docker/dockerfile:1
1
2
  FROM ubuntu:noble
2
3
 
3
4
  RUN apt-get update
@@ -0,0 +1,35 @@
1
+ # syntax=docker/dockerfile:1
2
+ FROM ubuntu:resolute
3
+
4
+ RUN apt-get update
5
+ RUN apt-get install -y ruby3.3 bundler
6
+ RUN apt-get install -y git wget xz-utils build-essential libyaml-dev
7
+
8
+ # Install Noto Fonts
9
+ RUN apt-get install -y fonts-noto
10
+
11
+ # Install Firefox
12
+ RUN wget -q https://packages.mozilla.org/apt/repo-signing-key.gpg -O- | tee /etc/apt/keyrings/packages.mozilla.org.asc > /dev/null
13
+ RUN tee /etc/apt/sources.list.d/mozilla.sources > /dev/null << EOF
14
+ Types: deb
15
+ URIs: https://packages.mozilla.org/apt
16
+ Suites: mozilla
17
+ Components: main
18
+ Signed-By: /etc/apt/keyrings/packages.mozilla.org.asc
19
+ EOF
20
+ RUN tee /etc/apt/preferences.d/mozilla > /dev/null << EOF
21
+ Package: *
22
+ Pin: origin packages.mozilla.org
23
+ Pin-Priority: 1000
24
+ EOF
25
+ RUN apt-get update
26
+ RUN apt-get install -y firefox
27
+
28
+ # Install Geckodriver
29
+ RUN wget "https://github.com/mozilla/geckodriver/releases/download/v0.36.0/geckodriver-v0.36.0-linux64.tar.gz" -O geckodriver.tar.gz
30
+ RUN tar -xzf geckodriver.tar.gz -C /usr/local/bin
31
+
32
+ COPY . /app
33
+ WORKDIR /app
34
+ RUN bundle install
35
+ CMD ["bundle", "exec", "rspec"]
data/docs/ForDeveloper.md CHANGED
@@ -5,13 +5,18 @@
5
5
  ```bash
6
6
  $ docker build -f ./dockerfiles/Dockerfile.debian13-ruby32 . -t gkhtmltopdf-d13r32
7
7
  $ docker build -f ./dockerfiles/Dockerfile.ubuntu24-ruby32 . -t gkhtmltopdf-u24r32
8
+ $ docker build -f ./dockerfiles/Dockerfile.ubuntu26-ruby33 . -t gkhtmltopdf-u26r33
8
9
  $ docker run --rm gkhtmltopdf-d13r32
9
10
  $ docker run --rm gkhtmltopdf-u24r32
11
+ $ docker run --rm gkhtmltopdf-u26r33
10
12
  $ docker rmi gkhtmltopdf-d13r32
11
13
  $ docker rmi gkhtmltopdf-u24r32
14
+ $ docker rmi gkhtmltopdf-u26r33
12
15
  ```
13
16
 
14
17
  ## Build
15
18
 
16
- ```
19
+ ```bash
20
+ $ gem build gkhtmltopdf.gemspec
21
+ $ gem push
17
22
  ```
data/exe/gkhtmltopdf CHANGED
@@ -6,7 +6,9 @@ require 'gkhtmltopdf'
6
6
 
7
7
  options = {
8
8
  print_options: {},
9
- firefox_prefs: {}
9
+ firefox_prefs: {},
10
+ gecko_stdout: File::NULL,
11
+ gecko_stderr: File::NULL
10
12
  }
11
13
 
12
14
  parser = OptionParser.new do |opts|
@@ -46,6 +48,14 @@ parser = OptionParser.new do |opts|
46
48
  options[:wait_time] = v
47
49
  end
48
50
 
51
+ opts.on("--stdout", "Show Geckodriver stdout") do |b|
52
+ options[:gecko_stdout] = b ? (STDOUT) : File::NULL
53
+ end
54
+
55
+ opts.on("--stderr", "Show Geckodriver stderr") do |b|
56
+ options[:gecko_stdout] = b ? (STDERR) : File::NULL
57
+ end
58
+
49
59
  opts.on("-v", "--version", "display version") do
50
60
  puts "Gkhtmltopdf version #{Gkhtmltopdf::VERSION}"
51
61
  exit
@@ -79,6 +89,8 @@ begin
79
89
  init_options[:geckodriver_path] = options.delete(:geckodriver_path) if options[:geckodriver_path]
80
90
  init_options[:wait_time] = options.delete(:wait_time) if options[:wait_time]
81
91
  init_options[:user_agent] = options.delete(:user_agent) if options[:user_agent]
92
+ init_options[:gecko_stdout] = options.delete(:gecko_stdout) if options[:gecko_stdout]
93
+ init_options[:gecko_stdout] = options.delete(:gecko_stdout) if options[:gecko_stdout]
82
94
 
83
95
  Gkhtmltopdf.convert(input_url, output_path, print_options: options[:print_options], **init_options)
84
96
 
@@ -12,12 +12,14 @@ module Gkhtmltopdf
12
12
  class Converter
13
13
  DEFAULT_FX_USER_AGENT = "gkhtmltopdf-rb(v#{VERSION}) by firefox and gecko".freeze
14
14
 
15
- def open(geckodriver_path: nil, firefox_path: nil, wait_time: nil, port: nil, user_agent: nil)
15
+ def open(geckodriver_path: nil, firefox_path: nil, wait_time: nil, port: nil, user_agent: nil, gecko_stdout: nil, gecko_stderr: nil)
16
16
  @geckodriver_path = resolve_geckodriver_path!(geckodriver_path)
17
17
  @firefox_path = resolve_firefox_path!(firefox_path)
18
18
  @port = port || get_free_port
19
19
  @base_url = "http://127.0.0.1:#{@port}"
20
- @pid = spawn("#{@geckodriver_path} --port #{@port}", out: File::NULL, err: File::NULL)
20
+ gecko_stdout = File::NULL if gecko_stdout.nil?
21
+ gecko_stderr = File::NULL if gecko_stderr.nil?
22
+ @pid = spawn("#{@geckodriver_path} --port #{@port}", out: gecko_stdout, err: gecko_stderr)
21
23
  wait_time ||= 20
22
24
  @profile_path = gen_tmp_profile(user_agent)
23
25
  wait_for_gk(wait_time)
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Gkhtmltopdf
4
- VERSION = '1.1.0'
4
+ VERSION = '1.1.1'
5
5
  end
data/lib/gkhtmltopdf.rb CHANGED
@@ -6,17 +6,17 @@ require_relative 'gkhtmltopdf/dsl'
6
6
  require_relative 'errors'
7
7
 
8
8
  module Gkhtmltopdf
9
- def self.convert(url, output_path, geckodriver_path: nil, firefox_path: nil, wait_time: nil, port: nil, user_agent: nil, print_options: {})
9
+ def self.convert(url, output_path, geckodriver_path: nil, firefox_path: nil, wait_time: nil, port: nil, user_agent: nil, gecko_stdout: nil, gecko_stderr: nil, print_options: {})
10
10
  converter = DSL.new
11
- converter.open(geckodriver_path: geckodriver_path, firefox_path: firefox_path, wait_time: wait_time, port: port, user_agent: user_agent)
11
+ converter.open(geckodriver_path: geckodriver_path, firefox_path: firefox_path, wait_time: wait_time, port: port, user_agent: user_agent, gecko_stdout: gecko_stdout, gecko_stderr: gecko_stderr)
12
12
  converter.save_pdf(url, output_path, print_options: print_options)
13
13
  ensure
14
14
  converter.close
15
15
  end
16
16
 
17
- def self.open(geckodriver_path: nil, firefox_path: nil, wait_time: nil, port: nil, user_agent: nil, &block)
17
+ def self.open(geckodriver_path: nil, firefox_path: nil, wait_time: nil, port: nil, user_agent: nil, gecko_stdout: nil, gecko_stderr: nil, &block)
18
18
  converter = DSL.new
19
- converter.open(geckodriver_path: geckodriver_path, firefox_path: firefox_path, wait_time: wait_time, port: port, user_agent: user_agent)
19
+ converter.open(geckodriver_path: geckodriver_path, firefox_path: firefox_path, wait_time: wait_time, port: port, user_agent: user_agent, gecko_stdout: gecko_stdout, gecko_stderr: gecko_stderr)
20
20
  yield converter
21
21
  ensure
22
22
  converter.close
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: gkhtmltopdf
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.1.0
4
+ version: 1.1.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Kazuki Sakane
@@ -84,6 +84,7 @@ files:
84
84
  - TODO.md
85
85
  - dockerfiles/Dockerfile.debian13-ruby32
86
86
  - dockerfiles/Dockerfile.ubuntu24-ruby32
87
+ - dockerfiles/Dockerfile.ubuntu26-ruby33
87
88
  - docs/ForDeveloper.md
88
89
  - exe/gkhtmltopdf
89
90
  - lib/errors.rb