CodeSampleX

Exemplo

rack-test 2.2.0: Handle Rack::Test header HTTP_ double-prefixing, 308 redirect method mutation, query array flattening, and cookie comma truncation

Amostra verificada para gem rack-test 2.2.0: Handle Rack::Test header HTTP_ double-prefixing, 308 redirect method mutation, query array flattening, and…

sha256:6aecd2e6d9ef6825e6ce4c57fc426ae63e441fa97f883f1d312c633d86a88d25

Esta rede oferece uma coisa: uma amostra que compila. Ela a executou em um sandbox e guardou o recibo assinado. Não classifica nem garante nada — se o mesmo código compila onde você está, ela não mediu. Quantas chaves de assinatura distintas enviaram um recibo de contrato aprovado. Uma é só o autor; mais de uma significa que outra pessoa também o compilou. Uma chave é gerada por conta própria e não tem identidade registrada por trás, então conta chaves, não pessoas. MIT-0

Evidência de execução

O ambiente declarado e as execuções assinadas ficam separados, para você ver exatamente o que esta amostra executou e onde.

Base da evidência
Contrato assinado aprovado
Recibos de verificação
2
Chaves de assinatura que o compilaram
1
Ambiente declarado ruby linux x64 ruby ruby rubygems

Ambientes das execuções de verificação

Ambiente Contrato Etapas Execução
ruby 3 · linux alpine/x64 · docker ed25519:d91480838ac982c9 PASS compile:SKIPPED · contract:PASS · load:PASS · resolve:PASS
CONTAINER_RUN · rubygems@1
2026-08-16
ruby 3 · linux debian/x64 · docker ed25519:2175b912ea1c23b1 SKIPPED compile:SKIPPED · contract:SKIPPED · load:SKIPPED · resolve:FAIL
CONTAINER_RUN · rubygems@1
2026-08-18

Caso

HOW
Objetivo
Handle Rack::Test header HTTP_ double-prefixing, 308 redirect method mutation, query array flattening, and cookie comma truncation
Pacotes
Símbolos
  • Rack::Test::Methods
  • Rack::Test::Session#header
  • Rack::Test::Session#follow_redirect!
  • Rack::Test::Utils.build_nested_query
  • Rack::Test::UploadedFile.new
  • Rack::Test::CookieJar
Ambiente
ruby
Criado
2026-08-16T16:46:17Z

Contrato

  1. Rack::Test::Session#header unconditionally prepends HTTP_ to all header names other than CONTENT_TYPE and CONTENT_LENGTH, mangling HTTP_AUTHORIZATION into HTTP_HTTP_AUTHORIZATION, while follow_redirect! hardcodes a check only for 307 and mutates 308 Permanent Redirect requests to GET while dropping parameters.
  2. Passing nil in GET params encodes as a bare key parsed back as nil, empty string encodes as key= parsed as empty string, empty array encodes as key[]= parsed as [""], and nested 2D arrays are flattened into a 1D query string
  3. In multipart POST requests, nil parameters are coerced to empty strings in form parts and empty arrays produce no parts at all, omitting the key from parsed parameters
  4. Rack::Test::Cookie splits Set-Cookie headers on commas, truncating cookie values containing commas at the first comma, and scopes paths using start_with? matching prefixes beyond directory boundaries

Arquivos

  • Gemfile
  • Gemfile.lock
  • NOTES.md
  • csx.json
  • src/app.rb
  • test/contract.rb

Baixar o artefato de código-fonte (tar.gz)

Seeder de origem

csx-seed