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

pulibrary / bibdata / 9b61276a-eef8-4973-b470-f3a8699b5b69
90%
main: 90%

Build:
Build:
LAST BUILD BRANCH: dependabot/bundler/net-ldap-0.20.0
DEFAULT BRANCH: main
Ran 16 Mar 2026 01:56PM UTC
Jobs 2
Files 183
Run time 1min
Badge
Embed ▾
README BADGES
x

If you need to use a raster PNG badge, change the '.svg' to '.png' in the link

Markdown

Textile

RDoc

HTML

Rst

16 Mar 2026 01:52PM UTC coverage: 89.888% (+0.01%) from 89.874%
9b61276a-eef8-4973-b470-f3a8699b5b69

Pull #3115

circleci

sandbergja
Re-implement publication_citation_display in Rust

My first attempt was slower than the ruby version,
due to the overhead of re-parsing the MARC record
for every call to Rust.

However, by grouping all the publication data
together as a hash, we only need to experience that
overhead once per record, and we get a nice speedup:

```
require 'benchmark/ips'
record = MARC::XMLReader.new('spec/fixtures/marc_to_solr/9939238033506421.mrx').first
marc_breaker = MarcBreaker.break(record)
Benchmark.ips do |x|
  x.report("before") { set_pub_citation(record) && BibdataRs::Marc.publication_statements(marc_breaker) }
  x.report("after") { BibdataRs::Marc.publication_data(marc_breaker) }
end
```

```
ruby 3.4.4 (2025-05-14 revision a38531fd3f) +YJIT +PRISM [arm64-darwin24]
Warming up --------------------------------------
              before     2.837k i/100ms
Calculating -------------------------------------
              before     27.827k (± 2.0%) i/s   (35.94 μs/i) -    141.850k in   5.099585s
```

```
ruby 3.4.4 (2025-05-14 revision a38531fd3f) +YJIT +PRISM [arm64-darwin24]
Warming up --------------------------------------
               after     4.137k i/100ms
Calculating -------------------------------------
               after     41.399k (± 1.6%) i/s   (24.16 μs/i) -    210.987k in   5.097755s
```
Pull Request #3115: Re-implement publication_citation_display in Rust

80 of 90 new or added lines in 3 files covered. (88.89%)

11 existing lines in 1 file now uncovered.

9751 of 10848 relevant lines covered (89.89%)

299.67 hits per line

New Missed Lines in Diff

Lines Coverage ∆ File
1
99.42
-0.58% lib/bibdata_rs/src/marc/publication.rs
9
44.8
-3.94% lib/bibdata_rs/src/marc/ruby_bindings.rs

Uncovered Existing Lines

Lines Coverage ∆ File
11
91.37
-3.51% marc_to_solr/lib/princeton_marc.rb
Jobs
ID Job ID Ran Files Coverage
1 9b61276a-eef8-4973-b470-f3a8699b5b69.1 16 Mar 2026 01:56PM UTC 69
88.87
2 9b61276a-eef8-4973-b470-f3a8699b5b69.2 16 Mar 2026 02:02PM UTC 114
92.08
Source Files on build 9b61276a-eef8-4973-b470-f3a8699b5b69
  • Tree
  • List 183
  • Changed 5
  • Source Changed 4
  • Coverage Changed 5
Coverage ∆ File Lines Relevant Covered Missed Hits/Line
  • Back to Repo
  • CircleCI Build #9B61276A...
  • Pull Request #3115
  • PR Base - main (#F1B53989...)
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

© 2026 Coveralls, Inc