From 8ea70848f08c3baee937ec284f04674fab8364a9 Mon Sep 17 00:00:00 2001 From: Max Kadel Date: Thu, 14 Mar 2024 17:12:18 -0400 Subject: [PATCH] Use case insensitive matching (#720) --- app/models/oclc/lc_call_slips/record.rb | 2 +- spec/models/oclc/lc_call_slips/record_spec.rb | 22 +++++++++++++++++++ 2 files changed, 23 insertions(+), 1 deletion(-) diff --git a/app/models/oclc/lc_call_slips/record.rb b/app/models/oclc/lc_call_slips/record.rb index bdafcfb0..c369c365 100644 --- a/app/models/oclc/lc_call_slips/record.rb +++ b/app/models/oclc/lc_call_slips/record.rb @@ -38,7 +38,7 @@ def class_relevant_to_selector?(selector:) def subject_relevant_to_selector?(selector:) return false unless selector.subjects - subjects.any? { |subject| subject.downcase.match?(/#{selector.subjects.join('|')}/) } + subjects.any? { |subject| subject.match?(/#{selector.subjects.join('|')}/i) } end def author diff --git a/spec/models/oclc/lc_call_slips/record_spec.rb b/spec/models/oclc/lc_call_slips/record_spec.rb index 5ea7dad5..e6c28731 100644 --- a/spec/models/oclc/lc_call_slips/record_spec.rb +++ b/spec/models/oclc/lc_call_slips/record_spec.rb @@ -51,6 +51,28 @@ expect(oclc_record.relevant_to_selector?(selector:)).to eq(false) end end + context 'with capitalization in the config file subjects' do + let(:selector_config) do + { hatfield: { + classes: [{ class: 'X', low_num: 0, high_num: 99_999 }], + subjects: ['Judaism'] + } } + end + let(:fields) do + [ + { '650' => { "ind1" => "", + "ind2" => "0", + 'subfields' => [ + { 'a' => 'Judaism' } + ] } } + ] + end + + it 'uses case insensitive matching' do + expect(oclc_record.subject_relevant_to_selector?(selector:)).to eq(true) + expect(oclc_record.relevant_to_selector?(selector:)).to eq(true) + end + end end describe 'call number parsing' do