You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
gemspec readers treat =begin blocks and heredocs as code: route gemspec_directives and dev_dependency_requirements through manifest::for_each_code_line #1932
formats/gem/manifest.rs has a code-line iterator that skips =begin/=end blocks and heredoc bodies: for_each_code_line L472. vex/product.rs already uses it to read gemspecs. The two gemspec readers in formats/gem/gemspec.rs scan raw lines instead:
A heredoc body containing gemspec path: ROOT → Err, which refuses the whole Gemfile.
Effect: locked_exact_requirement would pin ~> 2, = 1.0.0 where Bundler locks = 1.0.0, and a frozen install then fails (the #985 shape). The heredoc case fails closed but refuses a valid project.
Proposed change
Drive both loops with manifest::for_each_code_line, keeping their 1-based line numbers. While there, remove the redundant trim_end_matches('\r').
Size
1 file, about ±30 lines, plus 3 unit tests.
Acceptance criteria
New tests: a directive and a dev dependency inside =begin/=end are ignored, and a heredoc body is not read.
[agent] Claiming this for the architecture refactor routine (A54: the two gemspec readers bypass the shared Ruby code-line iterator; files are free of open PRs). Branch: arch-refactor/1932-gemspec-code-lines. Claim-ID: 2026-11-01T12:56:03Z-c88d11
Activity
mikolalysenko commentedon Nov 1, 2026
[agent] Claiming this for the architecture refactor routine (A54: the two gemspec readers bypass the shared Ruby code-line iterator; files are free of open PRs). Branch: arch-refactor/1932-gemspec-code-lines. Claim-ID: 2026-11-01T12:56:03Z-c88d11
Generated by Claude Code
Read gemspec readers through code_lines
mikolalysenko commentedon Nov 1, 2026
[agent] Triage: priority:p1 (Bundler). Handled by the open PR #1936.
Generated by Claude Code