docpdf 0.1.2 → 0.1.3
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 +4 -4
- data/CHANGELOG.md +7 -0
- data/lib/docpdf/converter_resolver.rb +10 -1
- data/lib/docpdf/stamper_resolver.rb +14 -8
- data/lib/docpdf/version.rb +1 -1
- metadata +1 -1
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 5e538a07522f58d49b6184ea61c232254d2c70bd9baab1ab45339c5be870a789
|
|
4
|
+
data.tar.gz: ff245f05c704f6b4a9fdb17bba0ca80605d90a92f5e1d147c3d8356ab7f0fd8d
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 2e2af68bbc8d8d7ba4a5e4492bb5975fe04cb327b0517f79d20cbba14af60cbe441b6b111ac0bfa65fe3632c9ee9e8c9ad4680e03f1c946a83cfdd535ee63c37
|
|
7
|
+
data.tar.gz: c9072fa249e9365b7bc1f3a7053fc6e0aeb2897a086f0ff8192544a9d7f27bd69b9975b84e68372298ea01e62dd9a94069d0e59cbb03c8984f61c66521c18e4b
|
data/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,12 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## [0.1.3] - 2026-04-04
|
|
4
|
+
|
|
5
|
+
### Improved
|
|
6
|
+
- Error messages now include the mime type that failed and which gems to install
|
|
7
|
+
- Unknown stamper errors list valid options from the registry
|
|
8
|
+
- All gem names in error messages are pulled from the registry, not hardcoded
|
|
9
|
+
|
|
3
10
|
## [0.1.2] - 2026-04-04
|
|
4
11
|
|
|
5
12
|
### Fixed
|
|
@@ -8,13 +8,22 @@ module DocPDF
|
|
|
8
8
|
end
|
|
9
9
|
|
|
10
10
|
def resolve(mime_type)
|
|
11
|
+
missing_gems = []
|
|
12
|
+
|
|
11
13
|
@adapters.each do |entry|
|
|
12
14
|
next unless entry[:mime_types].include?(mime_type)
|
|
13
15
|
require entry[:require_name] if entry[:require_name]
|
|
14
16
|
return entry[:loader].call
|
|
15
17
|
rescue LoadError
|
|
18
|
+
missing_gems << entry[:require_name]
|
|
16
19
|
next
|
|
17
20
|
end
|
|
21
|
+
|
|
22
|
+
if missing_gems.any?
|
|
23
|
+
gem_list = missing_gems.map { |g| "'#{g}'" }.join(" or ")
|
|
24
|
+
raise AdapterNotFoundError, "No converter found for #{mime_type}. Install #{gem_list} and add it to your Gemfile."
|
|
25
|
+
end
|
|
26
|
+
|
|
18
27
|
resolve_fallback
|
|
19
28
|
end
|
|
20
29
|
|
|
@@ -22,7 +31,7 @@ module DocPDF
|
|
|
22
31
|
|
|
23
32
|
def resolve_fallback
|
|
24
33
|
entry = @adapters.find { |e| e[:name] == :fallback }
|
|
25
|
-
raise AdapterNotFoundError, "No converter found and no fallback registered" unless entry
|
|
34
|
+
raise AdapterNotFoundError, "No converter found and no fallback registered." unless entry
|
|
26
35
|
entry[:loader].call
|
|
27
36
|
end
|
|
28
37
|
end
|
|
@@ -10,13 +10,7 @@ module DocPDF
|
|
|
10
10
|
def resolve
|
|
11
11
|
configured = DocPDF.configuration.stamper
|
|
12
12
|
if configured
|
|
13
|
-
|
|
14
|
-
raise AdapterNotFoundError, "Unknown stamper: #{configured}" unless entry
|
|
15
|
-
begin
|
|
16
|
-
entry[:loader].call
|
|
17
|
-
rescue LoadError => e
|
|
18
|
-
raise AdapterNotFoundError, "Stamper '#{configured}' requires gems that are not available: #{e.message}"
|
|
19
|
-
end
|
|
13
|
+
resolve_configured(configured)
|
|
20
14
|
else
|
|
21
15
|
auto_detect
|
|
22
16
|
end
|
|
@@ -30,7 +24,19 @@ module DocPDF
|
|
|
30
24
|
rescue LoadError
|
|
31
25
|
next
|
|
32
26
|
end
|
|
33
|
-
|
|
27
|
+
names = @adapters.map { |e| "'#{e[:name]}'" }.join(" or ")
|
|
28
|
+
raise AdapterNotFoundError, "No stamper available. Add #{names} to your Gemfile."
|
|
29
|
+
end
|
|
30
|
+
|
|
31
|
+
def resolve_configured(name)
|
|
32
|
+
entry = @adapters.find { |e| e[:name] == name }
|
|
33
|
+
valid_names = @adapters.map { |e| e[:name].inspect }.join(", ")
|
|
34
|
+
raise AdapterNotFoundError, "Unknown stamper: #{name.inspect}. Valid stampers are: #{valid_names}." unless entry
|
|
35
|
+
begin
|
|
36
|
+
entry[:loader].call
|
|
37
|
+
rescue LoadError => e
|
|
38
|
+
raise AdapterNotFoundError, "Stamper #{name.inspect} requires gems that are not installed: #{e.message}"
|
|
39
|
+
end
|
|
34
40
|
end
|
|
35
41
|
end
|
|
36
42
|
|
data/lib/docpdf/version.rb
CHANGED