Skip to content

Preserve SubscriptionText TSV column positions - #176

Merged
id774 merged 1 commit into
masterfrom
fix/subscription-text-tsv
Sep 8, 2026
Merged

Preserve SubscriptionText TSV column positions#176
id774 merged 1 commit into
masterfrom
fix/subscription-text-tsv

Conversation

@id774

@id774 id774 commented Sep 8, 2026

Copy link
Copy Markdown
Owner

Summary

  • SubscriptionText TSV parsing preserves positional columns.
  • Empty fields do not shift later values.
  • Blank / all-empty rows produce no item.
  • Extra columns remain ignored.
  • The manual integration Recipe now has one files key.
  • Existing SubscriptionText RSpec covers the corrected boundary.

Reason

  • The documented TSV meaning is positional: column 0 is title, column 1 is
    url, and so on regardless of which fields are empty.
  • line.strip destroyed leading tab information, so a URL-only row (title
    column empty) had its URL read into the title field instead of the link.
  • The default split("\t") did not preserve trailing empty fields, so a row
    with empty trailing columns lost its column alignment.
  • The duplicate files: key in test/integration/test_text2feed.yml made the
    manual integration configuration ambiguous (YAML silently uses only the
    last key).

Tests

All commands below were run in this environment (Ruby 3.3.6):

  • bundle exec rspec spec/plugins/subscription/text_spec.rb — 17 examples, 0 failures
  • bundle exec rake spec:plugins — 297 examples, 0 failures
  • bundle exec rake spec:lib — 110 examples, 0 failures
  • bundle exec rake spec — 416 examples, 0 failures
  • Static validation of test/integration/test_text2feed.yml (single files
    key, resolves to the two expected TSV paths) — exit 0
  • gem build automatic.gemspec — succeeded (automatic-26.09.gem)
  • bundle exec ruby -Ilib -e "require 'automatic'" — exit 0
  • bundle exec bin/automatic --version — exit 0, prints 26.09
  • bundle exec bin/automatic --help — exit 0

Required CI (Ruby 3.3 / 3.4 / 4.0) status will be confirmed once the checks
run on this pull request.

Compatibility

  • Recipe keys unchanged.
  • Column order unchanged.
  • UTF-8 handling unchanged.
  • Fewer-than-five columns remain supported.
  • Columns after the fifth remain ignored.
  • titles / urls / feeds behavior unchanged.
  • File read failure behavior unchanged.
  • FeedMaker unchanged.
  • No dependency changes.
  • VERSION remains 26.09.
  • Ruby support (3.3–4.0) unchanged.

Version History

Added one entry to the existing unreleased v26.09 section of doc/VERSIONS:

Preserve SubscriptionText TSV column positions and ignore empty input rows.

https://claude.ai/code/session_01CbtimCQAVdGhaEFXsEGKPK


Generated by Claude Code

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01CbtimCQAVdGhaEFXsEGKPK
@id774
id774 merged commit 7701d3a into master Sep 8, 2026
8 checks passed
@id774
id774 deleted the fix/subscription-text-tsv branch September 8, 2026 08:38
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