From 47de575160cb113b6f3f2c736cca8054f153d4a0 Mon Sep 17 00:00:00 2001 From: Matt Jankowski Date: Tue, 24 Jun 2025 10:34:58 -0400 Subject: [PATCH] Extract `BaseFilter` class to hold common components for filters --- app/{models => filters}/announcement_filter.rb | 8 +------- app/filters/base_filter.rb | 9 +++++++++ app/{models => filters}/invite_filter.rb | 8 +------- spec/rails_helper.rb | 1 + 4 files changed, 12 insertions(+), 14 deletions(-) rename app/{models => filters}/announcement_filter.rb (84%) create mode 100644 app/filters/base_filter.rb rename app/{models => filters}/invite_filter.rb (83%) diff --git a/app/models/announcement_filter.rb b/app/filters/announcement_filter.rb similarity index 84% rename from app/models/announcement_filter.rb rename to app/filters/announcement_filter.rb index 85c3b1d2cea..cf159051046 100644 --- a/app/models/announcement_filter.rb +++ b/app/filters/announcement_filter.rb @@ -1,17 +1,11 @@ # frozen_string_literal: true -class AnnouncementFilter +class AnnouncementFilter < BaseFilter KEYS = %i( published unpublished ).freeze - attr_reader :params - - def initialize(params) - @params = params - end - def results scope = Announcement.unscoped diff --git a/app/filters/base_filter.rb b/app/filters/base_filter.rb new file mode 100644 index 00000000000..868ace8f121 --- /dev/null +++ b/app/filters/base_filter.rb @@ -0,0 +1,9 @@ +# frozen_string_literal: true + +class BaseFilter + attr_reader :params + + def initialize(params) + @params = params + end +end diff --git a/app/models/invite_filter.rb b/app/filters/invite_filter.rb similarity index 83% rename from app/models/invite_filter.rb rename to app/filters/invite_filter.rb index c1edb3871fe..cb30421be62 100644 --- a/app/models/invite_filter.rb +++ b/app/filters/invite_filter.rb @@ -1,17 +1,11 @@ # frozen_string_literal: true -class InviteFilter +class InviteFilter < BaseFilter KEYS = %i( available expired ).freeze - attr_reader :params - - def initialize(params) - @params = params - end - def results scope = Invite.order(created_at: :desc) diff --git a/spec/rails_helper.rb b/spec/rails_helper.rb index 3d3e556f353..1f8d0d88ad7 100644 --- a/spec/rails_helper.rb +++ b/spec/rails_helper.rb @@ -18,6 +18,7 @@ if ENV.fetch('COVERAGE', false) add_filter 'lib/linter' + add_group 'Filters', 'app/filters' add_group 'Libraries', 'lib' add_group 'Policies', 'app/policies' add_group 'Presenters', 'app/presenters'