hexapdf 0.37.0 → 0.37.1

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: 464355c84e7dd5636fe34bb0feb96038e06d4e0701d0ce9e915a2a9bddd3c18a
4
- data.tar.gz: 8bcebc03512574b0fd71396bbe21330f59cb49e75f2194d1cd47ced0648ef7ad
3
+ metadata.gz: 9e59500405480ffc16b441659e827752bdfb89663b7b8cb100c6232d30ed45ae
4
+ data.tar.gz: 707100a033a01070ab87a4785f015b27a9d1985660646740ea9fb83057362723
5
5
  SHA512:
6
- metadata.gz: ccfbc72734d74178b1eb49da85bcd364410b12abfbb2d2cd730e6a37176dc85c7b87369bd0463869d6815d911e3428a21b0e18e1492f75d75b59c53a68ebf835
7
- data.tar.gz: bc7001b82ec40571b6257575923d0fb5ef4c1011ff4067b3b53c40822240328c461c358084f9de8d5271809d9d85b8bd2de91ce219e211cd84154b3156c7c426
6
+ metadata.gz: d38deb78b4094c87463251cce7aaa4142572f20bb2b2eac34db7898905eda3f55881c1904f6b6f45c5a91dea657b10224b6ee078e82c74b637073ed186e8e134
7
+ data.tar.gz: bf3832f584286a76ef8c3b46b75562e206973aaef17e7dfd2cf39974e9fc073047a101cb6dbc58f69912965cb6f2c638b2270c3d547971d5146984afd987b0db
data/CHANGELOG.md CHANGED
@@ -1,3 +1,10 @@
1
+ ## 0.37.1 - 2024-02-05
2
+
3
+ ### Fixed
4
+
5
+ * Validation of annotation dictionaries having an empty appearance dictionary
6
+
7
+
1
8
  ## 0.37.0 - 2024-01-29
2
9
 
3
10
  ### Added
@@ -254,6 +254,18 @@ module HexaPDF
254
254
  xobject
255
255
  end
256
256
 
257
+ private
258
+
259
+ def perform_validation(&block) #:nodoc:
260
+ # Make sure empty appearance dictionaries don't cause validation errors
261
+ if key?(:AP) && value[:AP].empty?
262
+ yield("An annotation's appearance dictionary must not be empty", true)
263
+ delete(:AP)
264
+ end
265
+
266
+ super
267
+ end
268
+
257
269
  end
258
270
 
259
271
  end
@@ -37,6 +37,6 @@
37
37
  module HexaPDF
38
38
 
39
39
  # The version of HexaPDF.
40
- VERSION = '0.37.0'
40
+ VERSION = '0.37.1'
41
41
 
42
42
  end
@@ -40,7 +40,7 @@ describe HexaPDF::Writer do
40
40
  219
41
41
  %%EOF
42
42
  3 0 obj
43
- <</Producer(HexaPDF version 0.37.0)>>
43
+ <</Producer(HexaPDF version 0.37.1)>>
44
44
  endobj
45
45
  xref
46
46
  3 1
@@ -72,7 +72,7 @@ describe HexaPDF::Writer do
72
72
  141
73
73
  %%EOF
74
74
  6 0 obj
75
- <</Producer(HexaPDF version 0.37.0)>>
75
+ <</Producer(HexaPDF version 0.37.1)>>
76
76
  endobj
77
77
  2 0 obj
78
78
  <</Length 10>>stream
@@ -51,7 +51,7 @@ end
51
51
  describe HexaPDF::Type::Annotation do
52
52
  before do
53
53
  @doc = HexaPDF::Document.new
54
- @annot = @doc.add({Type: :Annot, F: 0b100011, Rect: [10, 10, 110, 60]})
54
+ @annot = @doc.add({Type: :Annot, Subtype: :Link, F: 0b100011, Rect: [10, 10, 110, 60]})
55
55
  end
56
56
 
57
57
  it "must always be indirect" do
@@ -138,4 +138,14 @@ describe HexaPDF::Type::Annotation do
138
138
  assert_equal([:locked], @annot.flags)
139
139
  end
140
140
  end
141
+
142
+ describe "validation" do
143
+ it "makes sure that empty appearance stream dictionaries don't cause validation errors" do
144
+ assert(@annot.validate)
145
+ @annot[:AP] = {}
146
+ msg = nil
147
+ assert(@annot.validate {|imsg| msg = imsg })
148
+ assert_match(/appearance.*must not be empty/, msg)
149
+ end
150
+ end
141
151
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: hexapdf
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.37.0
4
+ version: 0.37.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Thomas Leitner
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2024-01-29 00:00:00.000000000 Z
11
+ date: 2024-02-05 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: cmdparse