Skip to content

rename gem to '3ncr', module to 'Threencr'#7

Merged
AndrianBdn merged 1 commit intomainfrom
rename-to-3ncr
Apr 26, 2026
Merged

rename gem to '3ncr', module to 'Threencr'#7
AndrianBdn merged 1 commit intomainfrom
rename-to-3ncr

Conversation

@peo-machine
Copy link
Copy Markdown
Collaborator

@peo-machine peo-machine commented Apr 26, 2026

Summary

Renames the Ruby gem ahead of its first RubyGems publish, aligning with the brand-matching name 3ncr on every registry that allows digit-first identifiers. RubyGems' specification_policy.rb requires only that the name "include at least one letter" — 3ncr qualifies.

Before After
Gem name `tokencrypt` `3ncr`
Top-level module `Tokencrypt` `Threencr`
Require / install `gem install tokencrypt; require 'tokencrypt'` `gem install 3ncr; require '3ncr'`

Ruby constants can't start with a digit, so the gem-name vs module-name split is forced (same shape as the Python and Rust renames in 3ncr/tokencrypt-python#15 and 3ncr/tokencrypt-rust#12).

What changed

  • Renamed: `tokencrypt.gemspec` → `3ncr.gemspec`; `lib/tokencrypt.rb` → `lib/3ncr.rb`; `lib/tokencrypt/version.rb` → `lib/threencr/version.rb`; `test/test_tokencrypt.rb` → `test/test_3ncr.rb`.
  • Inside `3ncr.gemspec`: `spec.name = "3ncr"`; version constant references `Threencr::VERSION`; `require_relative` path updated.
  • Inside `lib/3ncr.rb`: `module Tokencrypt` → `module Threencr`; nested require path updated.
  • Inside `lib/threencr/version.rb`: `module Tokencrypt` → `module Threencr`.
  • Tests: `require 'tokencrypt'` → `require '3ncr'`; `Tokencrypt::` → `Threencr::` throughout.
  • README: title, RubyGems badge URLs, install snippet, all module references and code examples.

GitHub repo path stays `3ncr/tokencrypt-ruby`.

Test plan

  • `bundle install` succeeds
  • `bundle exec rake test` — 17 / 17 runs, 37 / 37 assertions pass
  • `gem build 3ncr.gemspec` produces `3ncr-1.0.0.gem`
  • CI green
  • After merge: actual RubyGems publish (still needs operator pairing — account + MFA + first `gem push`, then OIDC Trusted Publishing)

Aligns the Ruby gem's public name with the rest of the 3ncr.org library
family on registries that allow digit-first names. Ruby constants can't
start with a digit, so the gem-name vs constant-name split is intentional:

    gem install 3ncr
    require '3ncr'
    Threencr::TokenCrypt.from_raw_key(key)

Repo path stays 3ncr/tokencrypt-ruby.
@AndrianBdn AndrianBdn merged commit c68c24a into main Apr 26, 2026
5 checks passed
@AndrianBdn AndrianBdn deleted the rename-to-3ncr branch April 26, 2026 09:38
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants