vivlio-starter-pdf 1.1.2 → 1.2.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.
@@ -2,6 +2,6 @@
2
2
 
3
3
  module VivlioStarter
4
4
  module Pdf
5
- VERSION = "1.1.2"
5
+ VERSION = "1.2.0"
6
6
  end
7
7
  end
@@ -8,32 +8,23 @@ Gem::Specification.new do |spec|
8
8
  spec.authors = ["Atelier Mirai"]
9
9
  spec.email = ["contact@atelier-mirai.net"]
10
10
 
11
- spec.summary = "Advanced PDF processor for vivlio-starter using HexaPDF"
12
- spec.description = "Provides PDF outline extraction, precision page numbering, and OCR via HexaPDF. AGPL-3.0 licensed."
11
+ spec.summary = "Vivlio Starter の PDF のしおり付与と、PDF から Markdown への変換を行う拡張プラグイン"
12
+ spec.description = "Vivlio Starter の Enhanced Mode を提供する拡張プラグインです。HexaPDF で PDF にしおりを付け、" \
13
+ "PDF を Markdown へ変換します。スキャンした PDF は Tesseract で OCR し、画像は WebP で抽出します。" \
14
+ "ライセンスは AGPL-3.0 です。"
13
15
  spec.homepage = "https://github.com/Atelier-Mirai/vivlio-starter-pdf"
14
16
  spec.license = "AGPL-3.0-only"
15
17
  spec.required_ruby_version = ">= 3.4.0"
16
18
 
17
- # homepage_uri は spec.homepage から自動で作られる。metadata にも同じ URL を書くと
18
- # rubygems.org はどちらか片方しか表示せず、gem build が警告を出す
19
19
  spec.metadata["allowed_push_host"] = "https://rubygems.org"
20
20
  spec.metadata["source_code_uri"] = "https://github.com/Atelier-Mirai/vivlio-starter-pdf"
21
21
  spec.metadata["changelog_uri"] = "https://github.com/Atelier-Mirai/vivlio-starter-pdf/blob/master/CHANGELOG.md"
22
- spec.post_install_message = <<~MESSAGE
23
- [vivlio-starter-pdf]
24
- Enhanced Mode の OCR には外部ツール(tesseract / tesseract-lang / poppler / vips)が必要です。
25
- vs doctor --fix
26
- で本体側からまとめて導入できます(macOS / Homebrew)。
27
- 手動の場合: brew install tesseract tesseract-lang poppler vips
22
+ spec.metadata["rubygems_mfa_required"] = "false"
28
23
 
29
- すでに導入済みの場合はこのメッセージを無視して構いません。
30
- MESSAGE
31
-
32
- # Specify which files should be added to the gem when it is released.
33
24
  spec.files = Dir.chdir(__dir__) do
34
25
  tracked = `git ls-files -z`.split("\x0").reject do |f|
35
26
  (File.expand_path(f) == __FILE__) ||
36
- f.start_with?(*%w[bin/ test/ spec/ features/ .git appveyor Gemfile])
27
+ f.start_with?(*%w[bin/ test/ spec/ features/ .git .rubocop.yml .ruby-version appveyor Gemfile Rakefile])
37
28
  end
38
29
  source_files = Dir.glob("lib/**/*.rb")
39
30
  executables = Dir.glob("exe/*")
@@ -46,8 +37,10 @@ Gem::Specification.new do |spec|
46
37
  spec.add_dependency "hexapdf", "~> 1.0"
47
38
  spec.add_dependency "ruby-vips", "~> 2.2"
48
39
 
49
- # Development dependencies
50
- spec.add_development_dependency "minitest", "~> 5.20"
40
+ spec.add_development_dependency "minitest", ">= 5.20"
41
+ spec.add_development_dependency "minitest-mock", "~> 5.27"
51
42
  spec.add_development_dependency "minitest-reporters", "~> 1.7"
52
43
  spec.add_development_dependency "rake", "~> 13.1"
44
+ spec.add_development_dependency "prawn", "~> 2.5"
45
+ spec.add_development_dependency "rubocop", "~> 1.81"
53
46
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: vivlio-starter-pdf
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.1.2
4
+ version: 1.2.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Atelier Mirai
@@ -41,16 +41,30 @@ dependencies:
41
41
  name: minitest
42
42
  requirement: !ruby/object:Gem::Requirement
43
43
  requirements:
44
- - - "~>"
44
+ - - ">="
45
45
  - !ruby/object:Gem::Version
46
46
  version: '5.20'
47
47
  type: :development
48
48
  prerelease: false
49
49
  version_requirements: !ruby/object:Gem::Requirement
50
50
  requirements:
51
- - - "~>"
51
+ - - ">="
52
52
  - !ruby/object:Gem::Version
53
53
  version: '5.20'
54
+ - !ruby/object:Gem::Dependency
55
+ name: minitest-mock
56
+ requirement: !ruby/object:Gem::Requirement
57
+ requirements:
58
+ - - "~>"
59
+ - !ruby/object:Gem::Version
60
+ version: '5.27'
61
+ type: :development
62
+ prerelease: false
63
+ version_requirements: !ruby/object:Gem::Requirement
64
+ requirements:
65
+ - - "~>"
66
+ - !ruby/object:Gem::Version
67
+ version: '5.27'
54
68
  - !ruby/object:Gem::Dependency
55
69
  name: minitest-reporters
56
70
  requirement: !ruby/object:Gem::Requirement
@@ -79,8 +93,37 @@ dependencies:
79
93
  - - "~>"
80
94
  - !ruby/object:Gem::Version
81
95
  version: '13.1'
82
- description: Provides PDF outline extraction, precision page numbering, and OCR via
83
- HexaPDF. AGPL-3.0 licensed.
96
+ - !ruby/object:Gem::Dependency
97
+ name: prawn
98
+ requirement: !ruby/object:Gem::Requirement
99
+ requirements:
100
+ - - "~>"
101
+ - !ruby/object:Gem::Version
102
+ version: '2.5'
103
+ type: :development
104
+ prerelease: false
105
+ version_requirements: !ruby/object:Gem::Requirement
106
+ requirements:
107
+ - - "~>"
108
+ - !ruby/object:Gem::Version
109
+ version: '2.5'
110
+ - !ruby/object:Gem::Dependency
111
+ name: rubocop
112
+ requirement: !ruby/object:Gem::Requirement
113
+ requirements:
114
+ - - "~>"
115
+ - !ruby/object:Gem::Version
116
+ version: '1.81'
117
+ type: :development
118
+ prerelease: false
119
+ version_requirements: !ruby/object:Gem::Requirement
120
+ requirements:
121
+ - - "~>"
122
+ - !ruby/object:Gem::Version
123
+ version: '1.81'
124
+ description: Vivlio Starter の Enhanced Mode を提供する拡張プラグインです。HexaPDF で PDF にしおりを付け、PDF
125
+ を Markdown へ変換します。スキャンした PDF は Tesseract で OCR し、画像は WebP で抽出します。ライセンスは AGPL-3.0
126
+ です。
84
127
  email:
85
128
  - contact@atelier-mirai.net
86
129
  executables:
@@ -88,12 +131,10 @@ executables:
88
131
  extensions: []
89
132
  extra_rdoc_files: []
90
133
  files:
91
- - ".ruby-version"
92
134
  - CHANGELOG.md
93
135
  - LICENSE
94
136
  - README.md
95
137
  - RELEASE_NOTE.md
96
- - Rakefile
97
138
  - exe/vivlio-starter-pdf
98
139
  - lib/vivlio_starter/cli/pdf/enhanced_provider.rb
99
140
  - lib/vivlio_starter/cli/pdf/log_helper.rb
@@ -110,14 +151,7 @@ metadata:
110
151
  allowed_push_host: https://rubygems.org
111
152
  source_code_uri: https://github.com/Atelier-Mirai/vivlio-starter-pdf
112
153
  changelog_uri: https://github.com/Atelier-Mirai/vivlio-starter-pdf/blob/master/CHANGELOG.md
113
- post_install_message: |
114
- [vivlio-starter-pdf]
115
- Enhanced Mode の OCR には外部ツール(tesseract / tesseract-lang / poppler / vips)が必要です。
116
- vs doctor --fix
117
- で本体側からまとめて導入できます(macOS / Homebrew)。
118
- 手動の場合: brew install tesseract tesseract-lang poppler vips
119
-
120
- すでに導入済みの場合はこのメッセージを無視して構いません。
154
+ rubygems_mfa_required: 'false'
121
155
  rdoc_options: []
122
156
  require_paths:
123
157
  - lib
@@ -132,7 +166,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
132
166
  - !ruby/object:Gem::Version
133
167
  version: '0'
134
168
  requirements: []
135
- rubygems_version: 4.0.16
169
+ rubygems_version: 4.0.20
136
170
  specification_version: 4
137
- summary: Advanced PDF processor for vivlio-starter using HexaPDF
171
+ summary: Vivlio Starter の PDF のしおり付与と、PDF から Markdown への変換を行う拡張プラグイン
138
172
  test_files: []
data/.ruby-version DELETED
@@ -1 +0,0 @@
1
- 4.0.6
data/Rakefile DELETED
@@ -1,74 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require "bundler/gem_tasks"
4
- require "rake/testtask"
5
-
6
- # gemspec が Ruby 3.4 以上を謳う以上、それが本当かは実際に走らせないと分からない。
7
- # `it`(暗黙ブロック引数)は 3.3 以下でも構文エラーにならず「it というメソッドの
8
- # 呼び出し」として通り、実行時に NameError になる——静的解析では捕まらない。
9
- SUPPORTED_RUBY_VERSIONS = %w[3.4.10 4.0.6].freeze
10
-
11
- # 別の Ruby を子プロセスで起動する以上、親の bundler 環境は必ず捨てる。
12
- # `bundle exec rake test` から呼ばれると、親(現在の Ruby)の bundler を
13
- # 子(別の Ruby)が読みに行き、テストが始まる前に LoadError で落ちる。
14
- # nil を渡すと、その環境変数は子から取り除かれる。
15
- UNBUNDLED_ENV = {
16
- "RUBYOPT" => nil, "RUBYLIB" => nil, "GEM_HOME" => nil, "GEM_PATH" => nil,
17
- "BUNDLE_GEMFILE" => nil, "BUNDLE_BIN_PATH" => nil, "BUNDLER_VERSION" => nil,
18
- "BUNDLER_SETUP" => nil
19
- }.freeze
20
-
21
- namespace :test do
22
- # テストの実体。現在の Ruby で 1 回だけ走る(test:versions が各版でこれを呼ぶ)
23
- Rake::TestTask.new(:current) do |t|
24
- t.libs << "test"
25
- t.libs << "lib"
26
- t.test_files = FileList["test/**/*_test.rb"]
27
- end
28
-
29
- desc "対応する全 Ruby 版(#{SUPPORTED_RUBY_VERSIONS.join(' / ')})でテストする"
30
- task :versions do
31
- missing = SUPPORTED_RUBY_VERSIONS - `rbenv versions --bare`.split("\n")
32
- unless missing.empty?
33
- abort <<~MESSAGE
34
- 次の Ruby が rbenv に入っていません: #{missing.join(', ')}
35
- #{missing.map { "rbenv install #{it}" }.join("\n ")}
36
- MESSAGE
37
- end
38
-
39
- # 版ごとに bundle が要る。未導入なら黙って入れる(その版の初回だけ時間がかかる)
40
- failed = SUPPORTED_RUBY_VERSIONS.reject do |version|
41
- puts "\n=== Ruby #{version} ==="
42
- env = UNBUNDLED_ENV.merge("RBENV_VERSION" => version)
43
-
44
- unless system(env, "rbenv exec bundle check", out: File::NULL, err: File::NULL)
45
- next false unless system(env, "rbenv exec bundle install --quiet")
46
- end
47
-
48
- system(env, "rbenv exec bundle exec rake test:current")
49
- end
50
-
51
- abort "\n失敗した Ruby: #{failed.join(', ')}" unless failed.empty?
52
- puts "\n全 Ruby 版で通過: #{SUPPORTED_RUBY_VERSIONS.join(' / ')}"
53
- end
54
- end
55
-
56
- # 手元では常に対応全版を回す(1 版あたり 10 秒弱で終わるため、分けるほどの負担にならない)。
57
- # CI(GitHub Actions)は版をマトリクスで分担するので、各ジョブは 1 回でよい。
58
- task test: (ENV["CI"] ? "test:current" : "test:versions")
59
- task default: :test
60
-
61
- # gem のアンインストール → ビルド → インストールを一括実行
62
- task :reinstall do
63
- gemspec = Dir['*.gemspec'].first
64
- raise 'gemspec が見つかりません' unless gemspec
65
-
66
- require_relative 'lib/vivlio_starter/cli/pdf/version'
67
- version = VivlioStarter::Pdf::VERSION
68
- gem_name = 'vivlio-starter-pdf'
69
- gem_file = "#{gem_name}-#{version}.gem"
70
-
71
- sh "gem uninstall #{gem_name} --version #{version} --executables --ignore-dependencies 2>/dev/null || true"
72
- sh "gem build #{gemspec}"
73
- sh "gem install #{gem_file}"
74
- end