pdf_oxide 0.3.76 → 0.3.77

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: 938441bdd61ad724dae76f0e01b651af6548a113f48194c315009f6a300ae411
4
- data.tar.gz: 64076029222fadf3c9befe35d54fde6b1cde2a6c6856646c63f203ba4f591795
3
+ metadata.gz: 4f8cc1afab9f3954402976845e7bd601c14cd77baa80d2b46cdfc8ccae509331
4
+ data.tar.gz: c45909905f5756a0eda9f142f555ac734c6f52568b23a4153beb5b0f9c29b69c
5
5
  SHA512:
6
- metadata.gz: ea7c9ae9648a92cd8789b281873c3afb20edef30fe67b6560ada7bdbf9d71c2d6b6e83ea57e9e05b66fb1cf54965945bcd080a15781e39624d4771b77ae82589
7
- data.tar.gz: a015a4d432b6860226873d5dde38b978a92543344d9e7ca3d73cfe7864dc281a1273d197c845d5e9f0b07ad8f69808622f2f9f9631bc0bfcf3e0b79ecf90f0b8
6
+ metadata.gz: 506394735f2b4f4a95592aefc8e86235c0c89c82ecc96e4b3972157ff2adfa90142cfb6f952e4b973e986c493372ca89c06ca3ea7de4b9fbbf5f140e6a7dcd6c
7
+ data.tar.gz: 97f7b07a1744a24f724d1b99e17bb6c06bc3841a29c8fa473bcfba0978bf78dcce7322e6d89b1a0fb04c8602e8a988da50d648f387166b89f4ebb08601a32777
@@ -92,6 +92,8 @@ module PdfOxide
92
92
 
93
93
  attach_function :pdf_document_search_page, %i[pointer string int32 bool pointer], :pointer
94
94
  attach_function :pdf_document_search_all, %i[pointer string bool pointer], :pointer
95
+ attach_function :pdf_document_prepare_search, %i[pointer pointer], :int32
96
+ attach_function :pdf_document_clear_search_index, %i[pointer pointer], :int32
95
97
  attach_function :pdf_oxide_search_result_count, [:pointer], :int32
96
98
  # Each accessor takes the results handle + index + an int32* error
97
99
  # buffer. The trailing pointer is REQUIRED — omitting it caused
@@ -206,6 +206,24 @@ module PdfOxide
206
206
  parse_search_results(results)
207
207
  end
208
208
 
209
+ # Build the search index for every page up front, instead of the
210
+ # lazy per-page build {#search} otherwise does on first use.
211
+ def prepare_search
212
+ err = ::FFI::MemoryPointer.new(:int32)
213
+ Bindings.pdf_document_prepare_search(handle, err)
214
+ raise_for_code(err.read_int32, 'prepare_search')
215
+ nil
216
+ end
217
+
218
+ # Drop the cached search index, if any, freeing its memory.
219
+ # {#search} rebuilds it lazily on next use.
220
+ def clear_search_index
221
+ err = ::FFI::MemoryPointer.new(:int32)
222
+ Bindings.pdf_document_clear_search_index(handle, err)
223
+ raise_for_code(err.read_int32, 'clear_search_index')
224
+ nil
225
+ end
226
+
209
227
  # @return [Array<Hash>] AcroForm fields as an array of `{name:, value:, type:, page:}`
210
228
  # hashes. v0.3.55 limitation: per-field `page` is -1 because
211
229
  # pdf_oxide's form extractor doesn't yet surface per-field page
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module PdfOxide
4
- VERSION = '0.3.76'
4
+ VERSION = '0.3.77'
5
5
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: pdf_oxide
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.3.76
4
+ version: 0.3.77
5
5
  platform: ruby
6
6
  authors:
7
7
  - PDF Oxide Contributors
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2026-07-27 00:00:00.000000000 Z
11
+ date: 2026-07-28 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: ffi