Changelog
All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
[Unreleased]
[0.4.0] - 2026-09-17
Added
- 5 new transliteration schemes:
- Serbian (
:serbian) translating Vuk's Cyrillic to Gaj's Latin (Lj,Nj,Dž,Đ,Ć). - GOST 7.79-2000 System B (
:gost779b) with standard ASCII digraphs. - BGN/PCGN 1947 geographic romanization (
:bgn_pcgn). - Bulgarian official Streamlined System (
:bulgarian). - Belarusian national / UN 2012 Łacinka (
:belarusian).
- Serbian (
- Reverse transliteration (detransliteration) via
Cyrillic.detransliterate(and aliases.det,.reverse_transliterate) with reverse mapping tables and longest-token-first greedy matching. - CLI flag
-r, --reversefor reversing transliterated text back to Cyrillic. - Comprehensive fixture datasets in
test/fixtures/and automated test suite intest/fixtures_test.rbverifying Ukrainian, Serbian, Bulgarian, Belarusian, Mongolian, and standard international schemes. - Comprehensive performance benchmark suite in
benchmark/run.rbwithrake benchmarktask testing all schemes, detransliteration, and text scale usingbenchmark-ips. - Automated YARD documentation generation and deployment to GitHub Pages via
.github/workflows/docs.ymlandrake yardtask. - Documentation link badge in
README.mdanddocumentation_urigem metadata. - CLI executable support and unit test coverage for all new schemes and detransliteration.
[0.3.0] - 2026-09-17
Added
- CLI executable
exe/cyrillicsupporting direct arguments, files, piped STDIN, and scheme flag (-s). - Integration tests for CLI arguments, flags, files, and STDIN input.
- GitHub Actions CI workflow for modern Ruby versions (
3.3,3.4,head) onmainbranch. - Automated GitHub Actions release workflow for building and publishing gem on git tag push.
- Dependabot configuration for automated Bundler and GitHub Actions dependency updates.
- Precompiled and cached regular expressions for character tables for improved performance.
- Case-insensitive scheme resolution (e.g.
:iso9,"ISO9",:de,"UA_PASSPORT"). - Informative
ArgumentErrorwhen an unknown transliteration scheme is specified. - Standard gem metadata URIs (
source_code_uri,changelog_uri,bug_tracker_uri,rubygems_mfa_required). - Comprehensive YARD documentation with examples for
Cyrillic.transliterateandCyrillic.t. - SimpleCov test coverage tracking achieving 100% line coverage.
- Unit tests for edge cases (nil, empty strings, scheme normalization, error handling).
Changed
- Namespaced scheme modules under
Cyrillic(Cyrillic::Iso9,Cyrillic::Mongolian,Cyrillic::Ukrainian,Cyrillic::UaPassport,Cyrillic::De) with backwards-compatible top-level aliases. - Set minimum required Ruby version to
>= 3.3.0in gemspec. - Update development dependencies (rubocop, rake, rdoc, irb, minitest, simplecov).
- Untrack
Gemfile.lockand add to.gitignorefollowing gem development best practices. - Add
.gitattributesfor consistent LF line endings and diff drivers. - Integrate RuboCop code style checks into default
raketask. - Update copyright year to 2018-2026 in
LICENSE.txt.
Fixed
- Eliminate mutable string literal warnings under Ruby 3.4+ in Ukrainian Passport transliteration.
- Fix character mappings and duplicate key warnings in ISO 9 table (
ӵandҿ).
Removed
- Legacy
.travis.ymlconfiguration. - Empty 0-byte placeholder files from
lib/cyrillic/.
[0.2.0] - 2025-11-09
Added
- ISO 9 transliteration support (
:iso9). - Mongolian transliteration support (
:mongolian). - Ukrainian transliteration support (
:ukrainian). - Ukrainian passport transliteration standard support (
:ua_passport). - German transliteration standard support (
:de).
[0.1.0] - 2018-04-05
Added
- Initial release.
- Core Cyrillic transliteration to Roman (Latin) script.