Skip to content

Commit

Permalink
Merge c93f2d3 into ebbe652
Browse files Browse the repository at this point in the history
  • Loading branch information
Brian Hoffman committed Sep 4, 2020
2 parents ebbe652 + c93f2d3 commit f6a2e07
Show file tree
Hide file tree
Showing 2 changed files with 13 additions and 5 deletions.
13 changes: 10 additions & 3 deletions lib/cob_index/macros/custom.rb
Original file line number Diff line number Diff line change
Expand Up @@ -756,11 +756,18 @@ def process_lc_call_sort(data, result = "")
return result
end

def build_call_number(rec, tags)
return [] if tags.empty?
call_numbers = Traject::MarcExtractor.cached("#{tags.shift}ab", alternate_script: false).collect_matching_lines(rec) do |field, spec, extractor|
extractor.collect_subfields(field, spec).first.gsub(/\s+/, "")
end
return build_call_number(rec, tags) if call_numbers.empty?
return call_numbers
end

def extract_lc_call_number_sort
lambda do |rec, acc|
call_number = Traject::MarcExtractor.cached("090a", alternate_script: false).collect_matching_lines(rec) do |field, spec, extractor|
extractor.collect_subfields(field, spec).first
end
call_number = build_call_number(rec, ["090", "050"])
call_number.reject! { |call_number| call_number.blank? }
return if call_number.empty?
# take the biggest one if there are several
Expand Down
5 changes: 3 additions & 2 deletions spec/cob_index/macros/custom_spec.rb
Original file line number Diff line number Diff line change
Expand Up @@ -2146,15 +2146,16 @@
" }
let(:record_text_2) { "
<record>
<datafield ind1=' ' ind2=' ' tag='090'>
<datafield ind1=' ' ind2=' ' tag='050'>
<subfield code='a'>QA71.B5</subfield>
</datafield>
</record>
" }
let(:record_text_3) { "
<record>
<datafield ind1=' ' ind2=' ' tag='090'>
<subfield code='a'>QA71.5.B5</subfield>
<subfield code='a'>QA71</subfield>
<subfield code='b'>.5.B5</subfield>
</datafield>
</record>
" }
Expand Down

0 comments on commit f6a2e07

Please sign in to comment.