Skip to content

feat: add other sources#6

Merged
k0va1 merged 6 commits intomasterfrom
feat/other-sources
Feb 23, 2026
Merged

feat: add other sources#6
k0va1 merged 6 commits intomasterfrom
feat/other-sources

Conversation

@k0va1
Copy link
Owner

@k0va1 k0va1 commented Feb 23, 2026

No description provided.

…letter items

Sync new/updated gems from RubyGems.org API (just_updated + latest endpoints)
via scheduled job every 4h. Add full admin CRUD for gems with search, filtering,
and sidebar navigation. Refactor NewsletterItem to use polymorphic `linkable`
association so items can reference either an Article or a RubyGem, with virtual
article_id/ruby_gem_id accessors for form compatibility. Add gem search combobox
to newsletter item fields with autofill support.
- Add GithubRepo model with GitHub Search API sync (Faraday)
- Add RedditPost model with RSS feed sync (Feedjira) for r/ruby and r/rails
- Add sync jobs with sidekiq-scheduler (6h/4h intervals)
- Add full admin CRUD with search, filters, and pagination for both
- Add linkable selector UI with type dropdown and dynamic combobox
- Consolidate 4 autofill controllers into generic linkable-autofill
- Use linkable_type/linkable_id directly in newsletter item form
- Normalize search controller responses to {id, title, url, description}
- Add nav links, dashboard stats, and lui.button icons throughout
- Add linkable_type inclusion validation on NewsletterItem (security)
- Fix GitHub sync merge order so daily data takes precedence over weekly
- Fix RubyGem sync merge order so "updated" takes precedence over "new"
- Remove score/num_comments from Reddit sync update_only to preserve admin values
- Fix form selects not preserving value on re-render (reddit_posts, ruby_gems)
- Remove memoized @http_client class variable for thread safety
- Add RubyGem stats to admin dashboard
- Add disconnect() cleanup to linkable_autofill_controller
- Fix Ruby Gems show page buttons to match GitHub/Reddit pattern
- Fix private/public ordering in NewsletterItem
- Add controller tests for all 6 new admin controllers (62 tests)
- Add NewsletterItem tests for GithubRepo/RedditPost accessors and validations
…tterItem

Use linkable/linkable_type directly instead of per-type accessor methods.
Extract article_blog_for helper for repeated blog access in mailer view.
- Extract shared concerns (NewsletterSource, HttpFetchable, PeriodFilterable)
- Remove default_scope from all models, use explicit named scopes
- Fix search controllers to use find_by with proper 404 responses
- Fix N+1 query in newsletter mailer with preload_article_blogs
- Fix merge order in RubyGem.sync_from_api! (new gems take precedence)
- Add source attribution labels in newsletter email templates
- Switch linkable autofill controller to @rails/request.js
- Upgrade @hotwired/turbo-rails and @hotwired/turbo to 8.0.23
- Add accessibility attributes to drag handles
- Add mailer tests and fixtures for all linkable types
@k0va1 k0va1 merged commit 97954b2 into master Feb 23, 2026
4 checks passed
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.

1 participant