spellkit 0.2.0-aarch64-linux → 0.3.0-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: dc45d3c40e1c9085c451c0831aa08755fe7a556bd940cd775ee2cd2231d93fd9
4
- data.tar.gz: 6a7e14af13a3d6e183d3a95296d5b9ea29478fcb3a91a5ee421854b5f0fb8966
3
+ metadata.gz: 37638559e7ae2a9e845f44aad8b7ce27eea732cd29123652db5cd0a73f43f7c0
4
+ data.tar.gz: 6cccf11bb94e8dd2ffcd894119053f08229cfc5041b0876e4e9edafdb1045d82
5
5
  SHA512:
6
- metadata.gz: 4ccb47129cff23f2ce5a6a2cc43d217e398b56ffb6cf9f58935da3ae9fe1b7d8886426abfacddad5be7d260007504c3c711ccf81ab656cdb9f0ad45d9eb8a8c8
7
- data.tar.gz: 55a8f9d3f7b53aa610a7cebc653c7657ea7c0914351d85a756f8711730370d3d94d7876de491071c0d2329673b92ab0e0d3504c5ee563f826781a6b87976d454
6
+ metadata.gz: 1d99715a4848458635f5a0f658ed80cc7b99d04842cd7d1d9d8cd22a712132b1c9abfa559993d284cc0ca0622c1cde52e251740d3ad7cf8fe73e72bb9633e429
7
+ data.tar.gz: 91a4d8f346503fffab139a944db67a3f9a74e20211a9beef91d237d415036257f49a240b77c293c547fdf1a0a6b641bf8f33e632d3691dc9714ad79071d4c3df
data/README.md CHANGED
@@ -684,9 +684,13 @@ bundle exec rake build
684
684
  ## Platform Support
685
685
 
686
686
  Pre-built gems available for:
687
- - macOS (x86_64, arm64)
688
- - Linux (glibc, musl)
689
- - Ruby 3.1, 3.2, 3.3
687
+ - macOS (arm64)
688
+ - Linux (x86_64, aarch64)
689
+ - Ruby 3.1, 3.2, 3.3, 3.4, 4.0
690
+
691
+ A pre-built gem carries one compiled extension per Ruby ABI, so installing under a Ruby
692
+ outside that list falls back to building from source and needs a Rust toolchain (>= 1.85).
693
+ Ruby 4.0 support arrived in 0.3.0; earlier versions cannot compile against it at all.
690
694
 
691
695
  ## Contributing
692
696
 
@@ -11,7 +11,7 @@ name = "spellkit"
11
11
  crate-type = ["cdylib"]
12
12
 
13
13
  [dependencies]
14
- magnus = { version = "0.7", features = ["rb-sys"] }
14
+ magnus = { version = "0.8", features = ["rb-sys"] }
15
15
  hashbrown = "0.15"
16
16
  unicode-normalization = "0.1"
17
17
  regex = "1.11"
@@ -1,7 +1,7 @@
1
1
  mod symspell;
2
2
  mod guards;
3
3
 
4
- use magnus::{class, define_module, function, method, prelude::*, Error, RArray, RHash, Ruby, Value, TryConvert};
4
+ use magnus::{function, method, prelude::*, Error, RArray, RHash, Ruby, Value, TryConvert};
5
5
  use std::sync::{Arc, RwLock};
6
6
  use symspell::SymSpell;
7
7
  use guards::Guards;
@@ -264,10 +264,10 @@ impl Checker {
264
264
 
265
265
  if let Some(ref symspell) = state.symspell {
266
266
  let suggestions = symspell.suggestions(&word, max_suggestions);
267
- let result = RArray::new();
267
+ let result = ruby.ary_new();
268
268
 
269
269
  for suggestion in suggestions {
270
- let hash = RHash::new();
270
+ let hash = ruby.hash_new();
271
271
  hash.aset("term", suggestion.term)?;
272
272
  hash.aset("distance", suggestion.distance)?;
273
273
  hash.aset("freq", suggestion.frequency)?;
@@ -320,7 +320,7 @@ impl Checker {
320
320
  return Err(Error::new(ruby.exception_runtime_error(), "Dictionary not loaded. Call load! first"));
321
321
  }
322
322
 
323
- let result = RArray::new();
323
+ let result = ruby.ary_new();
324
324
 
325
325
  if let Some(ref symspell) = state.symspell {
326
326
  for token in tokens.into_iter() {
@@ -336,8 +336,9 @@ impl Checker {
336
336
  }
337
337
 
338
338
  fn stats(&self) -> Result<RHash, Error> {
339
+ let ruby = Ruby::get().unwrap();
339
340
  let state = self.state.read().unwrap();
340
- let stats = RHash::new();
341
+ let stats = ruby.hash_new();
341
342
 
342
343
  if !state.loaded {
343
344
  stats.aset("loaded", false)?;
@@ -376,9 +377,9 @@ impl Checker {
376
377
  }
377
378
 
378
379
  #[magnus::init]
379
- fn init(_ruby: &Ruby) -> Result<(), Error> {
380
- let module = define_module("SpellKit")?;
381
- let checker_class = module.define_class("Checker", class::object())?;
380
+ fn init(ruby: &Ruby) -> Result<(), Error> {
381
+ let module = ruby.define_module("SpellKit")?;
382
+ let checker_class = module.define_class("Checker", ruby.class_object())?;
382
383
 
383
384
  checker_class.define_singleton_method("new", function!(Checker::new, 0))?;
384
385
  checker_class.define_method("load!", method!(Checker::load_full, 1))?;
Binary file
Binary file
Binary file
Binary file
Binary file
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module SpellKit
4
- VERSION = "0.2.0"
4
+ VERSION = "0.3.0"
5
5
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: spellkit
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.0
4
+ version: 0.3.0
5
5
  platform: aarch64-linux
6
6
  authors:
7
7
  - Chris Petersen
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2026-06-20 00:00:00.000000000 Z
11
+ date: 2026-09-07 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rb_sys
@@ -122,6 +122,20 @@ dependencies:
122
122
  - - ">="
123
123
  - !ruby/object:Gem::Version
124
124
  version: '0'
125
+ - !ruby/object:Gem::Dependency
126
+ name: benchmark
127
+ requirement: !ruby/object:Gem::Requirement
128
+ requirements:
129
+ - - ">="
130
+ - !ruby/object:Gem::Version
131
+ version: '0'
132
+ type: :development
133
+ prerelease: false
134
+ version_requirements: !ruby/object:Gem::Requirement
135
+ requirements:
136
+ - - ">="
137
+ - !ruby/object:Gem::Version
138
+ version: '0'
125
139
  - !ruby/object:Gem::Dependency
126
140
  name: benchmark-ips
127
141
  requirement: !ruby/object:Gem::Requirement
@@ -169,6 +183,7 @@ files:
169
183
  - lib/spellkit/3.2/spellkit.so
170
184
  - lib/spellkit/3.3/spellkit.so
171
185
  - lib/spellkit/3.4/spellkit.so
186
+ - lib/spellkit/4.0/spellkit.so
172
187
  - lib/spellkit/version.rb
173
188
  homepage: https://github.com/scientist-labs/spellkit
174
189
  licenses:
@@ -187,7 +202,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
187
202
  version: '3.1'
188
203
  - - "<"
189
204
  - !ruby/object:Gem::Version
190
- version: 3.5.dev
205
+ version: 4.1.dev
191
206
  required_rubygems_version: !ruby/object:Gem::Requirement
192
207
  requirements:
193
208
  - - ">="