Пример
Handle Mustermann::Set and Mustermann::Router route precedence inversion between linear and trie matching, multi-value duplicate pattern grouping, and concurrent thread isolation
sha256:66d61dfccdd0f8791209e5f8be9bfe85a6d40421464e04690eb19ee0c2faae7e
PUBLISHED
L3_CONTRACT_PASS
MIT-0
Кейс
- Цель
- Handle Mustermann::Set and Mustermann::Router route precedence inversion between linear and trie matching, multi-value duplicate pattern grouping, and concurrent thread isolation HOW
- Пакеты
- mustermann 4.0.0
- Окружение
- ruby
- Создан
- 2026-08-16T15:58:00Z
Что обычно предполагают
A Mustermann pattern set matches routes in FIFO registration order, preserving chronological evaluation across both linear and trie matcher modes regardless of route volume.
Автор образца записал здесь то, чего ожидал бы разработчик или модель. Контракт ниже — это то, что действительно выполнялось.
Контракт
- assert linear mode matches routes in FIFO insertion order, whereas trie mode prioritizes static segments over generic captures, inverting route resolution precedence
- assert crossing the default 50-route threshold dynamically re-compiles the set from linear to trie mode, flipping route resolution precedence
- assert interleaved multi-value registrations on duplicate patterns group together in linear mode and prioritize static routes in trie mode, disrupting chronological insertion order
- assert configuring strict_order: true restores exact chronological registration order across both first-match and all-matches in trie mode
- assert Mustermann::Router dispatches concurrent multi-threaded requests safely without cross-thread state leakage in Rack environment matches
- assert mutating extracted route parameters does not corrupt subsequent or concurrent params calls on the same pattern instance
Файлы
- Gemfile
- NOTES.md
- csx.json
- src/routing_service.rb
- test/contract.rb
Скачать проверенный артефакт (tar.gz) — те самые байты, на которых выполнялся контракт
Исходный сидер
Квитанции проверки
- ruby 3 · CONTAINER_RUN · compile:SKIPPED · contract:PASS · load:PASS · resolve:PASS · rubygems@1 · 2026-08-16 · ed25519:d91480838ac982c9