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

pulibrary / bibdata / b3c4a532-5da0-46f8-9c20-20018605a028

21 Mar 2025 08:11PM UTC coverage: 42.257% (-49.9%) from 92.185%
b3c4a532-5da0-46f8-9c20-20018605a028

push

circleci

sandbergja
Move various gems from the default Gemfile group to a more appropriate group

1599 of 3784 relevant lines covered (42.26%)

2.56 hits per line

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

13.79
/app/services/dump_log_ids_service.rb
1
class DumpLogIdsService
1✔
2
  # Process a dump of MARC files and updates the Dump's delete_id and update_id properties
3
  def process_dump(id)
1✔
4
    dump = Dump.find(id)
×
5
    raise StandardError.new, "Dump is of type #{dump.dump_type}, must be changed_records" unless dump.changed_records?
×
6

7
    delete_ids = []
×
8
    update_ids = []
×
9
    dump.dump_files.each do |dump_file|
×
10
      dump_file.tar_decompress_file do |marc_file|
×
11
        file_delete_ids, file_update_ids = process_marc_file(marc_file)
×
12
        delete_ids += file_delete_ids
×
13
        update_ids += file_update_ids
×
14
      end
15
    end
16

17
    dump.delete_ids = delete_ids
×
18
    dump.update_ids = update_ids
×
19
    dump.save
×
20
    Rails.logger.info "Log ID totals for dump #{id}: deleted #{dump.delete_ids.count}, updated #{dump.update_ids.count}."
×
21
  end
22

23
  private
1✔
24

25
    def process_marc_file(marc_file)
1✔
26
      delete_ids = []
×
27
      update_ids = []
×
28
      reader = Nokogiri::XML::Reader(marc_file)
×
29
      reader.each do |node|
×
30
        next unless node.name == 'record' && node.node_type == Nokogiri::XML::Reader::TYPE_ELEMENT
×
31

32
        xml = Nokogiri::XML(node.outer_xml)
×
33
        id = xml.xpath("//controlfield[@tag='001']/text()").text
×
34
        leader = xml.xpath('//leader/text()').text
×
35
        if leader[5] == 'd'
×
36
          delete_ids << id
×
37
        else
38
          update_ids << id
×
39
        end
40
      end
41
      [delete_ids, update_ids]
×
42
    end
43
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