Sha256: 5f6c87d503941be2c6cfa62953c95b5247c58d86608da32e169feb4dcd1ccf97
Contents?: true
Size: 938 Bytes
Versions: 149
Compression:
Stored size: 938 Bytes
Contents
# frozen_string_literal: true # Works in concert with Patients::SearchQuery and Patients::SearchForm. # Example usage in a controller: # # my_relation = Thing.all.joins(:patient) # filter = Patients::SearchFilter.new(search_term, request) # my_relation = patient_filter.call(my_relation) # render locals: { search_form: filter.search_form } require_dependency "renalware/patients" module Renalware module Patients class SearchFilter attr_reader :search_form def initialize(search_term, request) @search_form = build_search_form(search_term, request) end def call(relation) matching_patients = Patients::SearchQuery.new(term: search_form.term).call relation.merge(matching_patients) end def build_search_form(search_term, request) Patients::SearchForm.new( term: search_term, url: request.path ) end end end end
Version data entries
149 entries across 149 versions & 1 rubygems