parsanol 1.3.19-aarch64-linux → 1.3.21-aarch64-linux

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: 49b68d325094e9538befea2fccb16305ac72f50a1256b324b7749eff6f5b5602
4
- data.tar.gz: 551a5afa47827939c72848cc572d58b01443c361c4c979964058ce0a3ecc446b
3
+ metadata.gz: befd7dcaa05a6edd269baad0aa92c41fb63cfbe1e28e0a59fa2a7d969dd05bab
4
+ data.tar.gz: b0fa1be1eeb3f432c4116a7a0bbb6fbd1fd3abd8234f184deb4145f4251dce95
5
5
  SHA512:
6
- metadata.gz: 2f0dc3fc23d8a8b8824246511e2b7acdf8b626b7bb8e49b3be99cf5f0b9eb24a8c7bb6591bc3deea6c1fefb30bf5ed7e360b50d7ca670829a6dbe10516937c83
7
- data.tar.gz: 7cd18ec11e80851841cb3a556cfa2be92367dab528c0e633cc54ceddf63137771e77d0ce3472db7b3d05437bea60407b35d52e53437be77ffe61664032449dbd
6
+ metadata.gz: 300e98e15972f8541b692b3b55892d23be8f148648714ca04c3de9fa84c50322dd54ff3c8974a2dc14bf67e7a77ce3e241d39d54f4f6d64d6b8632e1ae3dae94
7
+ data.tar.gz: d7737c9a6335530a6b73b2e64250dd2f5aebb47fd54a4eea9969e2468118ab932cfa57ec56a4877bcfe6097143b712f0be73327e39bb0b8f02ff5dd01bdac3f5
Binary file
Binary file
Binary file
Binary file
@@ -51,6 +51,7 @@ module Parsanol
51
51
  # Register with Rust FFI
52
52
  ffi_id = Native.register_callback(@next_id,
53
53
  description || "Ruby callback ##{@next_id}")
54
+ @next_id += 1
54
55
 
55
56
  # Also keep a Ruby-side reference for GC safety
56
57
  @mutex.synchronize do
@@ -345,7 +345,8 @@ module Parsanol
345
345
  # Example: merged_hash={namedTypeOrRename: A}, array=[{namedTypeOrRename: B}]
346
346
  # → should produce [{namedTypeOrRename: A}, {namedTypeOrRename: B}]
347
347
  existing_keys = merged_hash.keys
348
- shares_keys = item.any? do |sub_item|
348
+ repeated_keys = item.flat_map(&:keys).tally.any? { |_key, count| count > 1 }
349
+ shares_keys = repeated_keys || item.any? do |sub_item|
349
350
  sub_item.is_a?(Hash) && sub_item.keys.intersect?(existing_keys)
350
351
  end
351
352
 
@@ -12,6 +12,9 @@ module Parsanol
12
12
  module Native
13
13
  # ffi-gem cdylib tier: lazy — only loaded when the MRI extension is absent.
14
14
  autoload :Ffi, "parsanol/native/ffi"
15
+ # Dynamic-atom callbacks: autoloaded so the serializer's reference
16
+ # never raises NameError into the silent :ruby fallback (issue #38).
17
+ autoload :Dynamic, "parsanol/native/dynamic"
15
18
  class << self
16
19
  # Check if native extension is available
17
20
  def available?
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Parsanol
4
- VERSION = "1.3.19"
4
+ VERSION = "1.3.21"
5
5
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: parsanol
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.3.19
4
+ version: 1.3.21
5
5
  platform: aarch64-linux
6
6
  authors:
7
7
  - Ribose Inc.