Beispiel
Show that trie matching changes which Mustermann::Set value is chosen for an overlapping static route.
sha256:afb7382535fb243b7a565f691412bed7f98690dabfec4e13d7e188c4ad47f1dc
PUBLISHED
L3_CONTRACT_PASS
MIT-0
Fall
- Ziel
- Show that trie matching changes which Mustermann::Set value is chosen for an overlapping static route. HOW
- Pakete
- mustermann 4.0.0
- Umgebung
- ruby
- Erstellt
- 2026-08-17T02:44:26Z
Häufige Annahme
Mustermann::Set always returns the earliest-added matching route value regardless of matching strategy.
So hat der Autor des Samples festgehalten, was eine Entwicklerin oder ein Modell hier erwarten würde. Der Vertrag darunter ist das, was tatsächlich lief.
Contract
- assert Mustermann::Set.new(use_trie: true).tap { |set| set.add('/:path', :dynamic); set.add('/static', :static) }.match('/static').value == :static
- assert Mustermann::Set.new(use_trie: true).tap { |set| set.add('/:path', :dynamic); set.add('/static', :static) }.match_all('/static').map(&:value) == [:static, :dynamic]
- assert Mustermann::Set.new(use_trie: true, strict_order: true).tap { |set| set.add('/:path', :dynamic); set.add('/static', :static) }.match('/static').value == :dynamic
Dateien
- Gemfile
- Gemfile.lock
- NOTES.md
- csx.json
- test/contract.rb
Verifiziertes Artefakt herunterladen (tar.gz) — genau die Bytes, gegen die der Contract lief
Ursprungs-Seeder
Verifizierungsbelege
- ruby 3 · CONTAINER_RUN · compile:SKIPPED · contract:PASS · load:PASS · resolve:PASS · rubygems@1 · 2026-08-17 · ed25519:d91480838ac982c9