Skip to content

Commit 962dde5

Browse files
committed
added data and a test for transcript display
1 parent c54ce5c commit 962dde5

File tree

3 files changed

+77
-1
lines changed

3 files changed

+77
-1
lines changed

lib/berkeley_library/av/metadata/fields.rb

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ module Fields
1414
TRACKS = Field.new(order: 99, label: 'Tracks', spec: TAG_TRACK_FIELD, subfield_order: %w[g t a])
1515
CATALOG_LINK = Field.new(order: 998, label: 'Linked Resources', spec: "#{TAG_LINK_FIELD}{^1=\\4}{^2=\\1}")
1616
# rubocop:disable Layout/LineLength
17-
Field.new(order: 999, label: 'Transcripts', spec: "#{TAG_TRANSCRIPT_FIELD}{$y~\\Transcript}{^1=\\4}{^2=\\2}", subfield_order: %w[u y])
17+
TRANSCRIPTS = Field.new(order: 999, label: 'Transcripts', spec: "#{TAG_TRANSCRIPT_FIELD}{$y~\\Transcript}{^1=\\4}{^2=\\2}", subfield_order: %w[u y])
1818
# rubocop:enable Layout/LineLength
1919

2020
STANDARD_FIELDS = [
Lines changed: 55 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,55 @@
1+
2+
<?xml version="1.0" encoding="UTF-8"?>
3+
<collection xmlns="http://www.loc.gov/MARC21/slim">
4+
<record>
5+
<controlfield tag="001">207666</controlfield>
6+
<controlfield tag="005">20231106135319.0</controlfield>
7+
<datafield tag="035" ind1=" " ind2=" ">
8+
<subfield code="a">drilmav-00004</subfield>
9+
</datafield>
10+
<datafield tag="245" ind1=" " ind2=" ">
11+
<subfield code="a">On changes regarding discrimination against people with disabilities</subfield>
12+
</datafield>
13+
<datafield tag="336" ind1=" " ind2=" ">
14+
<subfield code="a">Audio</subfield>
15+
</datafield>
16+
<datafield tag="540" ind1=" " ind2=" ">
17+
<subfield code="a">Researchers may make free and open use of the UC Berkeley Library’s digitized public domain materials. However, some materials in our online collections may be protected by U.S. copyright law (Title 17, U.S.C.). Use or reproduction of materials protected by copyright beyond that allowed by fair use (Title 17, U.S.C. § 107) requires permission from the copyright owners. The use or reproduction of some materials may also be restricted by terms of University of California gift or purchase agreements, privacy and publicity rights, or trademark law. Responsibility for determining rights status and permissibility of any use or reproduction rests exclusively with the researcher. To learn more or make inquiries, please see our permissions policies (https://www.lib.berkeley.edu/about/permissions-policies).
18+
</subfield>
19+
</datafield>
20+
<datafield tag="700" ind1="1" ind2=" ">
21+
<subfield code="a">Billings, Carol Fewell</subfield>
22+
</datafield>
23+
<datafield tag="852" ind1=" " ind2=" ">
24+
<subfield code="c">The Bancroft Library</subfield>
25+
</datafield>
26+
<datafield tag="856" ind1="4" ind2="2">
27+
<subfield code="u">https://avplayer.lib.berkeley.edu/ROHOAudio/drilmav-00004</subfield>
28+
<subfield code="y">Play Audio</subfield>
29+
</datafield>
30+
<datafield tag="856" ind1="4" ind2="2">
31+
<subfield code="u">https://digitalassets.lib.berkeley.edu/audio/transcript/Carol_Fewell_Billings_Transcript.pdf</subfield>
32+
<subfield code="y">Transcript of audio file</subfield>
33+
</datafield>
34+
<datafield tag="902" ind1=" " ind2=" ">
35+
<subfield code="d">2/3/21</subfield>
36+
<subfield code="n">SMS</subfield>
37+
</datafield>
38+
<datafield tag="909" ind1="C" ind2="O">
39+
<subfield code="o">oai:digicoll.lib.berkeley.edu:207666</subfield>
40+
<subfield code="q">mcleanCalisphere_oai</subfield>
41+
</datafield>
42+
<datafield tag="980" ind1=" " ind2=" ">
43+
<subfield code="a">DRILM: AV</subfield>
44+
</datafield>
45+
<datafield tag="982" ind1=" " ind2=" ">
46+
<subfield code="b">Disability Rights and Independent Living Movement</subfield>
47+
</datafield>
48+
<datafield tag="982" ind1=" " ind2=" ">
49+
<subfield code="a">Disability Rights Movement</subfield>
50+
</datafield>
51+
<datafield tag="998" ind1=" " ind2=" ">
52+
<subfield code="g">billings1.mp3</subfield>
53+
</datafield>
54+
</record>
55+
</collection>

spec/lib/berkeley_library/av/metadata/field_spec.rb

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -66,6 +66,27 @@ class Metadata
6666
end
6767
end
6868

69+
context 'transcripts' do
70+
it 'extracts transcripts from TIND records' do
71+
marc_record = MARC::XMLReader.new('spec/data/record-audio-multiple-856s.xml').first
72+
field = Field.new(order: 999, label: 'Transcripts', spec: "#{TAG_TRANSCRIPT_FIELD}{$y~\\Transcript}{^1=\\4}{^2=\\2}", subfield_order: %w[u y])
73+
value = field.value_from(marc_record)
74+
expect(value).to be_a(Value)
75+
expected_transcript = AV::Metadata::Link.new(
76+
url: 'https://digitalassets.lib.berkeley.edu/audio/transcript/Carol_Fewell_Billings_Transcript.pdf',
77+
body: 'Transcript of audio file'
78+
)
79+
expect(value.entries).to contain_exactly(expected_transcript)
80+
end
81+
82+
it 'doesn\'t break when there are no transcripts' do
83+
marc_record = MARC::XMLReader.new('spec/data/record-(pacradio)01469.xml').first
84+
field = Field.new(order: 999, label: 'Transcripts', spec: "#{TAG_TRANSCRIPT_FIELD}{$y~\\Transcript}{^1=\\4}{^2=\\2}", subfield_order: %w[u y])
85+
value = field.value_from(marc_record)
86+
expect(value).to be_nil
87+
end
88+
end
89+
6990
describe :hash do
7091
it 'returns the same hash for identical Fields' do
7192
f1 = Field.new(order: 2, label: 'Description', spec: '520$a')

0 commit comments

Comments
 (0)