• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

pulibrary / orangelight / 0e37073d-109c-440c-949f-49d2aa86311b

18 Aug 2025 09:05PM UTC coverage: 0.482% (-94.9%) from 95.343%
0e37073d-109c-440c-949f-49d2aa86311b

push

circleci

web-flow
Replace per_page_options_for_select with custom component to avoid deprecation issue (#5186)

* Start creating new component to address deprecaton warning

* Replace per_page_options_for_select with custom component to avoid deprecation issue

Co-authored-by: Jane Sandberg <sandbergja@users.noreply.github.com>

---------

Co-authored-by: Ryan Jensen <rj1044@princeton.edu>
Co-authored-by: Jane Sandberg <sandbergja@users.noreply.github.com>

0 of 33 new or added lines in 1 file covered. (0.0%)

9374 existing lines in 213 files now uncovered.

47 of 9753 relevant lines covered (0.48%)

0.01 hits per line

Source File
Press 'n' to go to next uncovered line, 'b' for previous

0.0
/lib/orangelight/string_functions.rb
1
# frozen_string_literal: true
2

UNCOV
3
module StringFunctions
×
UNCOV
4
  class << self
×
UNCOV
5
    def cn_normalize(str)
×
UNCOV
6
      if /^[a-zA-Z]{2,3} \d+([qQ]?)$/.match? str # the normalizer thinks "CD 104" is valid LC
×
UNCOV
7
        accession_number(str)&.strip
×
UNCOV
8
      else
×
UNCOV
9
        Lcsort.normalize(str.gsub(/x([A-Z])/, '\1'))&.strip || accession_number(str)&.strip
×
UNCOV
10
      end
×
UNCOV
11
    end
×
12

UNCOV
13
    def oclc_normalize(oclc, _opts = { prefix: false })
×
UNCOV
14
      oclc.gsub(/\D/, '').to_i.to_s
×
UNCOV
15
    end
×
16

17
    # Needed for name-title browse
18
    # https://github.com/traject/traject/blob/v2.3.1/lib/traject/macros/marc21.rb#L227
UNCOV
19
    def trim_punctuation(str)
×
20
      # If something went wrong and we got a nil, just return it
UNCOV
21
      return str unless str
×
22

23
      # trailing: comma, slash, semicolon, colon (possibly preceded and followed by whitespace)
UNCOV
24
      str = str.sub(%r{ *[ ,\/;:] *\Z}, '')
×
25

26
      # trailing period if it is preceded by at least three letters
27
      # (possibly preceded and followed by whitespace)
UNCOV
28
      str = str.sub(/( *\w\w\w)\. *\Z/, '\1')
×
29

30
      # single square bracket characters if they are the start and/or end
31
      #   chars and there are no internal square brackets.
UNCOV
32
      str = str.sub(/\A\[?([^\[\]]+)\]?\Z/, '\1')
×
33

34
      # trim any leading or trailing whitespace
UNCOV
35
      str.strip!
×
36

UNCOV
37
      str
×
UNCOV
38
    end
×
39

UNCOV
40
    private
×
41

UNCOV
42
      def accession_number(str)
×
UNCOV
43
        norm = str.upcase
×
UNCOV
44
        norm = norm.gsub(/(CD|DVD|LP|LS)-/, '\1') # should file together regardless of dash
×
45

46
        # normalize number to 7-digits, ignore oversize q
UNCOV
47
        norm.gsub(/(\d{1,7})(Q$|Q OVERSIZE$)?/) do
×
UNCOV
48
          format('%07d', Regexp.last_match[1].to_i)
×
UNCOV
49
        end
×
UNCOV
50
      end
×
UNCOV
51
  end
×
UNCOV
52
end
×
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2025 Coveralls, Inc