Skip to content

Handle conditional request ETag lists - #859

Closed
OskarEichler wants to merge 1 commit into
rails:mainfrom
OskarEichler:codex/conditional-etag-lists
Closed

Handle conditional request ETag lists#859
OskarEichler wants to merge 1 commit into
rails:mainfrom
OskarEichler:codex/conditional-etag-lists

Conversation

@OskarEichler

Copy link
Copy Markdown

Summary

Handle comma-separated conditional-request ETags, *, and RFC weak comparison for If-None-Match while retaining strong comparison for If-Match.

The current trailing-token extraction ignores earlier list members and wildcards, and treats weak validators as ordinary strong values.

Reproduction

For an asset with ETag abc, If-None-Match: "other", W/"abc" now returns 304 and If-Match: "other", "abc" succeeds. If-Match: W/"abc" remains a strong-comparison miss.

Verification

  • Release/current baseline and combined completion candidate: unchanged suite passes 913 tests / 4,109 assertions / 0 failures / 0 errors / 4 skips on Ruby 4.0.6 and 3.2.11.
  • Focused external models cover lists, OWS, quoted/unquoted validators, wildcards, weak/strong comparison, GET/HEAD and response ETags on both Rubies.
  • Syntax, targeted RuboCop, package parity, isolated gem load and downstream Rails boot pass.

Compatibility

Single current validators retain their behavior. No dependency/version change. Existing tests were not edited under the consumer repository’s no-test-edit policy; focused evidence ran externally. Prepared with AI assistance.

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