Skip to content

Conversation

@cardmagic
Copy link
Owner

@cardmagic cardmagic commented Dec 28, 2025

Summary

  • Replace Travis CI / Drone CI with GitHub Actions workflows
  • Add RuboCop with RBS inline annotation support
  • Add SimpleCov for test coverage (93.5% line, 91% branch)
  • Add RBS inline type annotations to SimpleRSS class
  • Add automated gem release workflow via OIDC trusted publisher

Test plan

  • All tests pass (8 tests, 47 assertions)
  • RuboCop passes with no offenses
  • RBS types validate successfully
  • CI workflow runs on GitHub Actions

Closes #32

Replace legacy Travis CI and Drone CI with GitHub Actions workflows:
- ruby.yml: lint, test matrix (Ruby 3.1-3.4), and RBS type validation
- release.yml: automated gem publishing via OIDC trusted publisher

Add modern Ruby tooling infrastructure:
- RuboCop with rbs-inline annotation support
- SimpleCov for test coverage reporting (93.5% line, 91% branch)
- RBS inline type annotations throughout SimpleRSS class

This brings simple-rss in line with cardmagic/classifier's infrastructure,
enabling static type checking and standardized code style enforcement.

Closes #32
@cardmagic
Copy link
Owner Author

@greptile review

Extract item tag parsing into focused methods with guard clauses:
- parse_item_tag: dispatcher with early returns for tag types
- parse_rel_tag: handles link+alternate style tags
- parse_attr_tag: handles media:content#url style tags
- parse_simple_tag: handles standard tags

Extract clean_content branching into:
- DATE_TAGS/STRIP_HTML_TAGS constants for clarity
- parse_date: Time parsing with fallback
- extract_href: href attribute extraction

Eliminates 3-level nesting in favor of flat, readable code.
@cardmagic cardmagic self-assigned this Dec 28, 2025
@cardmagic cardmagic merged commit 0347ff0 into master Dec 28, 2025
6 checks passed
@cardmagic cardmagic deleted the ci-modernization branch December 28, 2025 20:54
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.

Modernize CI/CD, add RuboCop and RBS type annotations

2 participants