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

pulibrary / bibdata / 1dcebae2-3318-4e77-bc53-82276e293354

02 May 2025 04:45PM UTC coverage: 28.256% (-63.9%) from 92.189%
1dcebae2-3318-4e77-bc53-82276e293354

push

circleci

sandbergja
Add basic infrastructure for compiling rust code

* Add a rake compile task to compile
* Run the rake task in CI
* Run the rake task before rspec tests with the rust tag, to provide quick feedback on rust changes in TDD cycles

2 of 7 new or added lines in 2 files covered. (28.57%)

2467 existing lines in 97 files now uncovered.

1089 of 3854 relevant lines covered (28.26%)

0.29 hits per line

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

18.18
/marc_to_solr/lib/electronic_access_link_factory.rb
1
class ElectronicAccessLinkFactory
1✔
2
  # Extract values from a given MARC subfield
3
  # @param s_field the MARC subfield
4
  # @return [Hash] the extracted values
5
  def self.parse_subfield(s_field)
1✔
UNCOV
6
    anchor_text = ''
×
UNCOV
7
    subfield_value = s_field.value
×
8

UNCOV
9
    case s_field.code
×
10
    when '0'
UNCOV
11
      holding_id = subfield_value
×
12
    when 'u'
13
      # e. g. http://arks.princeton.edu/ark:/88435/7d278t10z, https://drive.google.com/open?id=0B3HwfRG3YqiNVVR4bXNvRzNwaGs
UNCOV
14
      url_key = subfield_value
×
15
    when 'z'
16
      # e. g. "Curatorial documentation"
UNCOV
17
      z_label = subfield_value
×
18
    when 'y', '3'
UNCOV
19
      anchor_text = subfield_value
×
20
    end
21

UNCOV
22
    { holding_id:, url_key:, z_label:, anchor_text: }.compact
×
23
  end
24

25
  # Extract values from an entire set of MARC subfields
26
  # @param marc_field the MARC record
27
  # @return [Hash] the values
28
  def self.parse_subfields(marc_field)
1✔
UNCOV
29
    subfield_values = marc_field.subfields.map { |subfield| parse_subfield(subfield) }
×
UNCOV
30
    subfield_values = [{}] if subfield_values.empty?
×
UNCOV
31
    output = subfield_values.reduce(:merge)
×
32

33
    # rubocop:disable Rails/Pluck, Rails/CompactBlank
UNCOV
34
    anchor_texts = subfield_values.map { |subfield_value| subfield_value[:anchor_text] }.reject(&:blank?)
×
35
    # rubocop:enable Rails/Pluck, Rails/CompactBlank
UNCOV
36
    output[:anchor_text] = anchor_texts.reduce { |u, v| u + "#{u}: #{v}" } unless anchor_texts.empty?
×
37

UNCOV
38
    output
×
39
  end
40

41
  # Constructs an ElectronicAccessLink object given a MARC record
42
  # @param marc_field the MARC record
43
  # @return ElectronicAccessLink
44
  def self.build(bib_id:, marc_field:)
1✔
UNCOV
45
    link_args = { bib_id:, holding_id: nil, url_key: nil, z_label: nil, anchor_text: nil }
×
UNCOV
46
    parsed_args = parse_subfields(marc_field)
×
UNCOV
47
    link_args.merge! parsed_args
×
48

UNCOV
49
    ElectronicAccessLink.new(**link_args)
×
50
  end
51
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