tokenkit 0.1.0.pre.1 → 0.1.0.pre.2

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: 76766a917a2c731ac2b6fa223a4f79c2844f0174b13bc5911e7b0e09a1052607
4
- data.tar.gz: 791f780ff1f1388ba111a3836e8b4e036b5660417eb3d5278a53c26d8ffb837e
3
+ metadata.gz: 4f5bf68366a726b7b17fdda101f4fc7019a4990ebe579f765bd9ce7e87f46ae2
4
+ data.tar.gz: 17e693e29bc188a9bd18813c9f629f5fab484047cef028d6e8f1811294cd31b7
5
5
  SHA512:
6
- metadata.gz: 97a48ad146e8ac6c1ba1951acc4b485ba1f66e42f3d040d5cb904693cd878464bb7c2f2ea7bfeba652b6c382ddbc4a6b83b3a5b2d10d05347e77537abf73cc01
7
- data.tar.gz: 27cb53e54031d9675f78e994cfbb12b202a64eb746b758cd79a7f40be3dc9ac8bdc1bfdeb0bcefa005e418320639cbfad6851d6533be1f1d782d64b2483f46df
6
+ metadata.gz: f63b7ffbd72a96bf101b14e8da484c0c12c5c47dc912a5cb4b81ae9b372887f72a9925bd28f5506bf95b34f5ca67b9bd155d9f492502423f1e27477cb05995f0
7
+ data.tar.gz: '026835f1944ab9a7da0ba37a71eee667821be9aa0780239ccd69cf75b9d2199531bc40e3026bfa29a6e79c0394dc56d45bff35d01f5e9cbe79c71558f039b142'
data/README.md CHANGED
@@ -1,4 +1,4 @@
1
- # TokenKit
1
+ <img src="/docs/assets/tokenkit-wide.png" alt="tokenkit" height="120px">
2
2
 
3
3
  Fast, Rust-backed word-level tokenization for Ruby with pattern preservation.
4
4
 
data/Rakefile CHANGED
@@ -1,17 +1,36 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  require "bundler/gem_tasks"
4
- require "rspec/core/rake_task"
4
+ require "rake/extensiontask"
5
5
 
6
- RSpec::Core::RakeTask.new(:spec)
6
+ # rspec and standard are DEVELOPMENT-only deps. The cross-compile build container
7
+ # (rb-sys-dock, via scientist-labs/rust-gem-release) installs the runtime bundle
8
+ # only, so these requires would raise LoadError and abort `rake` before the native
9
+ # build task can run. Guard them so this Rakefile always loads; the spec/standard
10
+ # tasks simply aren't available in a build-only environment.
11
+ begin
12
+ require "rspec/core/rake_task"
13
+ RSpec::Core::RakeTask.new(:spec)
14
+ rescue LoadError
15
+ desc "run specs (rspec unavailable in this environment)"
16
+ task(:spec) { abort "rspec is a development dependency and is not installed here" }
17
+ end
7
18
 
8
- require "standard/rake"
9
- require "rake/extensiontask"
19
+ begin
20
+ require "standard/rake"
21
+ rescue LoadError
22
+ # standard is dev-only; skip the lint task when it isn't installed.
23
+ end
10
24
 
11
25
  GEMSPEC = Gem::Specification.load("tokenkit.gemspec")
12
26
 
13
27
  Rake::ExtensionTask.new("tokenkit", GEMSPEC) do |ext|
14
28
  ext.lib_dir = "lib/tokenkit"
29
+ # cross_compile + cross_platform make rake-compiler expose the
30
+ # `native:<platform>` tasks that rb-sys-dock invokes for each precompiled leg.
31
+ # Without these, the cross build fails with "Don't know how to build task".
32
+ ext.cross_compile = true
33
+ ext.cross_platform = %w[x86_64-linux aarch64-linux arm64-darwin]
15
34
  end
16
35
 
17
36
  task spec: :compile
Binary file
Binary file
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module TokenKit
4
- VERSION = "0.1.0.pre.1"
4
+ VERSION = "0.1.0.pre.2"
5
5
  end
data/lib/tokenkit.rb CHANGED
@@ -5,11 +5,17 @@ require_relative "tokenkit/regex_converter"
5
5
  require_relative "tokenkit/config_builder"
6
6
  require_relative "tokenkit/config_compat"
7
7
 
8
+ # Load the compiled Rust extension. Precompiled (platform) gems install it into a
9
+ # Ruby-ABI-versioned subdir (lib/tokenkit/<major.minor>/tokenkit.{so,bundle}) so a single
10
+ # fat gem can carry a binary per Ruby version; source/dev builds place it flat at
11
+ # lib/tokenkit/tokenkit.{so,bundle}. Try the versioned path first, fall back to the flat
12
+ # one. Resolution goes through $LOAD_PATH (`require`, never `require_relative`) because
13
+ # RubyGems installs native extensions outside the gem's lib/ dir.
8
14
  begin
9
15
  RUBY_VERSION =~ /(\d+\.\d+)/
10
- require_relative "tokenkit/#{Regexp.last_match(1)}/tokenkit"
16
+ require "tokenkit/#{Regexp.last_match(1)}/tokenkit"
11
17
  rescue LoadError
12
- require_relative "tokenkit/tokenkit"
18
+ require "tokenkit/tokenkit"
13
19
  end
14
20
 
15
21
  # TokenKit provides fast, Rust-backed tokenization for Ruby with pattern preservation.
metadata CHANGED
@@ -1,14 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: tokenkit
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.0.pre.1
4
+ version: 0.1.0.pre.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Chris Petersen
8
- autorequire:
9
8
  bindir: exe
10
9
  cert_chain: []
11
- date: 2025-09-29 00:00:00.000000000 Z
10
+ date: 1980-01-02 00:00:00.000000000 Z
12
11
  dependencies:
13
12
  - !ruby/object:Gem::Dependency
14
13
  name: rb_sys
@@ -116,6 +115,8 @@ files:
116
115
  - docs/ARCHITECTURE.md
117
116
  - docs/PERFORMANCE.md
118
117
  - docs/README.md
118
+ - docs/assets/tokenkit-wide.png
119
+ - docs/assets/tokenkit.png
119
120
  - ext/tokenkit/Cargo.toml
120
121
  - ext/tokenkit/extconf.rb
121
122
  - ext/tokenkit/src/config.rs
@@ -150,7 +151,6 @@ licenses:
150
151
  metadata:
151
152
  homepage_uri: https://github.com/scientist-labs/tokenkit
152
153
  source_code_uri: https://github.com/scientist-labs/tokenkit
153
- post_install_message:
154
154
  rdoc_options: []
155
155
  require_paths:
156
156
  - lib
@@ -164,9 +164,9 @@ required_rubygems_version: !ruby/object:Gem::Requirement
164
164
  - - ">="
165
165
  - !ruby/object:Gem::Version
166
166
  version: '0'
167
- requirements: []
168
- rubygems_version: 3.5.3
169
- signing_key:
167
+ requirements:
168
+ - Rust >= 1.85
169
+ rubygems_version: 3.6.9
170
170
  specification_version: 4
171
171
  summary: Fast, Rust-backed word-level tokenization for Ruby
172
172
  test_files: []