berkeley_library-alma 0.0.3 → 0.0.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/.idea/alma.iml +22 -21
- data/.idea/inspectionProfiles/Project_Default.xml +2 -0
- data/CHANGES.md +16 -0
- data/README.md +43 -5
- data/berkeley_library-alma.gemspec +1 -1
- data/bin/alma-mms-lookup +1 -3
- data/lib/berkeley_library/alma/barcode.rb +33 -0
- data/lib/berkeley_library/alma/module_info.rb +1 -1
- data/lib/berkeley_library/alma/record_id.rb +8 -26
- data/lib/berkeley_library/alma/sru/sru.rb +102 -0
- data/lib/berkeley_library/alma/sru/xml_reader.rb +148 -0
- data/lib/berkeley_library/alma/sru.rb +1 -0
- data/spec/data/C084093187-sru.xml +299 -0
- data/spec/data/availability-sru-page-1.xml +522 -0
- data/spec/data/availability-sru-page-2.xml +266 -0
- data/spec/data/availability-sru.xml +109 -0
- data/spec/data/{b11082434-sru.xml → b110824349-sru.xml} +0 -0
- data/spec/lib/berkeley_library/alma/barcode_spec.rb +67 -0
- data/spec/lib/berkeley_library/alma/bib_number_spec.rb +2 -1
- data/spec/lib/berkeley_library/alma/mms_id_spec.rb +3 -3
- data/spec/lib/berkeley_library/alma/record_id_spec.rb +20 -0
- data/spec/lib/berkeley_library/alma/sru/sru_spec.rb +98 -0
- data/spec/lib/berkeley_library/alma/sru/xml_reader_spec.rb +75 -0
- data/spec/spec_helper.rb +6 -15
- metadata +24 -6
@@ -0,0 +1,266 @@
|
|
1
|
+
<?xml version="1.0" encoding="UTF-8" standalone="no"?><searchRetrieveResponse xmlns="http://www.loc.gov/zing/srw/">
|
2
|
+
<version>1.2</version>
|
3
|
+
<numberOfRecords>15</numberOfRecords>
|
4
|
+
<records>
|
5
|
+
<record>
|
6
|
+
<recordSchema>marcxml</recordSchema>
|
7
|
+
<recordPacking>xml</recordPacking>
|
8
|
+
<recordData>
|
9
|
+
<record xmlns="http://www.loc.gov/MARC21/slim">
|
10
|
+
<leader>00338nam a2200097 a 4500</leader>
|
11
|
+
<controlfield tag="001">991008719659706532</controlfield>
|
12
|
+
<controlfield tag="008">^^</controlfield>
|
13
|
+
<datafield ind1=" " ind2=" " tag="035">
|
14
|
+
<subfield code="a">(CUY)UCB-b214199459-01ucs_ber</subfield>
|
15
|
+
</datafield>
|
16
|
+
<datafield ind1="1" ind2=" " tag="100">
|
17
|
+
<subfield code="a">Kelly, Ellsworth,</subfield>
|
18
|
+
<subfield code="d">1923-2015</subfield>
|
19
|
+
</datafield>
|
20
|
+
<datafield ind1="1" ind2="0" tag="245">
|
21
|
+
<subfield code="a">Red-orange over blue</subfield>
|
22
|
+
<subfield code="h">[graphic]</subfield>
|
23
|
+
</datafield>
|
24
|
+
<datafield ind1="1" ind2="0" tag="245">
|
25
|
+
<subfield code="a">Rouge-Orange sur Bleu</subfield>
|
26
|
+
</datafield>
|
27
|
+
<datafield ind1=" " ind2=" " tag="300">
|
28
|
+
<subfield code="a">1 lithograph :</subfield>
|
29
|
+
<subfield code="b">col.</subfield>
|
30
|
+
</datafield>
|
31
|
+
<datafield ind1=" " ind2=" " tag="996">
|
32
|
+
<subfield code="a">b214199459</subfield>
|
33
|
+
<subfield code="b">Updated: 08-14-18</subfield>
|
34
|
+
<subfield code="c">Created: 07-09-14</subfield>
|
35
|
+
<subfield code="d">CatDate: - -</subfield>
|
36
|
+
<subfield code="9">LOCAL</subfield>
|
37
|
+
</datafield>
|
38
|
+
<datafield ind1=" " ind2=" " tag="AVA">
|
39
|
+
<subfield code="0">991008719659706532</subfield>
|
40
|
+
<subfield code="8">22721557370006532</subfield>
|
41
|
+
<subfield code="a">01UCS_BER</subfield>
|
42
|
+
<subfield code="b">MORR</subfield>
|
43
|
+
<subfield code="c">Morrison</subfield>
|
44
|
+
<subfield code="e">available</subfield>
|
45
|
+
<subfield code="f">1</subfield>
|
46
|
+
<subfield code="g">0</subfield>
|
47
|
+
<subfield code="i">UCB_Campus</subfield>
|
48
|
+
<subfield code="j">mo</subfield>
|
49
|
+
<subfield code="k">#</subfield>
|
50
|
+
<subfield code="p">1</subfield>
|
51
|
+
<subfield code="q">Morrison Library</subfield>
|
52
|
+
</datafield>
|
53
|
+
</record>
|
54
|
+
</recordData>
|
55
|
+
<recordIdentifier>991008719659706532</recordIdentifier>
|
56
|
+
<recordPosition>11</recordPosition>
|
57
|
+
</record>
|
58
|
+
<record>
|
59
|
+
<recordSchema>marcxml</recordSchema>
|
60
|
+
<recordPacking>xml</recordPacking>
|
61
|
+
<recordData>
|
62
|
+
<record xmlns="http://www.loc.gov/MARC21/slim">
|
63
|
+
<leader>00273nam a2200085 a 4500</leader>
|
64
|
+
<controlfield tag="001">991005668209706532</controlfield>
|
65
|
+
<controlfield tag="008">^^</controlfield>
|
66
|
+
<datafield ind1=" " ind2=" " tag="035">
|
67
|
+
<subfield code="a">(CUY)UCB-b207766708-01ucs_ber</subfield>
|
68
|
+
</datafield>
|
69
|
+
<datafield ind1="1" ind2=" " tag="100">
|
70
|
+
<subfield code="a">Beutlich, Tadek.</subfield>
|
71
|
+
</datafield>
|
72
|
+
<datafield ind1="1" ind2="0" tag="245">
|
73
|
+
<subfield code="a">River</subfield>
|
74
|
+
<subfield code="h">[graphic]</subfield>
|
75
|
+
</datafield>
|
76
|
+
<datafield ind1=" " ind2=" " tag="300">
|
77
|
+
<subfield code="a">1 lithograph :</subfield>
|
78
|
+
<subfield code="b">col.</subfield>
|
79
|
+
</datafield>
|
80
|
+
<datafield ind1=" " ind2=" " tag="996">
|
81
|
+
<subfield code="a">b207766708</subfield>
|
82
|
+
<subfield code="b">Updated: 11-01-13</subfield>
|
83
|
+
<subfield code="c">Created: 11-01-13</subfield>
|
84
|
+
<subfield code="d">CatDate: - -</subfield>
|
85
|
+
<subfield code="9">LOCAL</subfield>
|
86
|
+
</datafield>
|
87
|
+
<datafield ind1=" " ind2=" " tag="AVA">
|
88
|
+
<subfield code="0">991005668209706532</subfield>
|
89
|
+
<subfield code="8">22928389410006532</subfield>
|
90
|
+
<subfield code="a">01UCS_BER</subfield>
|
91
|
+
<subfield code="b">MORR</subfield>
|
92
|
+
<subfield code="c">Morrison</subfield>
|
93
|
+
<subfield code="e">available</subfield>
|
94
|
+
<subfield code="f">1</subfield>
|
95
|
+
<subfield code="g">0</subfield>
|
96
|
+
<subfield code="i">UCB_Campus</subfield>
|
97
|
+
<subfield code="j">mo</subfield>
|
98
|
+
<subfield code="k">#</subfield>
|
99
|
+
<subfield code="p">1</subfield>
|
100
|
+
<subfield code="q">Morrison Library</subfield>
|
101
|
+
</datafield>
|
102
|
+
</record>
|
103
|
+
</recordData>
|
104
|
+
<recordIdentifier>991005668209706532</recordIdentifier>
|
105
|
+
<recordPosition>12</recordPosition>
|
106
|
+
</record>
|
107
|
+
<record>
|
108
|
+
<recordSchema>marcxml</recordSchema>
|
109
|
+
<recordPacking>xml</recordPacking>
|
110
|
+
<recordData>
|
111
|
+
<record xmlns="http://www.loc.gov/MARC21/slim">
|
112
|
+
<leader>00340nam a2200097 a 4500</leader>
|
113
|
+
<controlfield tag="001">991008363529706532</controlfield>
|
114
|
+
<controlfield tag="008">^^</controlfield>
|
115
|
+
<datafield ind1=" " ind2=" " tag="035">
|
116
|
+
<subfield code="a">(CUY)UCB-b213512956-01ucs_ber</subfield>
|
117
|
+
</datafield>
|
118
|
+
<datafield ind1="1" ind2=" " tag="100">
|
119
|
+
<subfield code="a">Wang, Gai.</subfield>
|
120
|
+
</datafield>
|
121
|
+
<datafield ind1="1" ind2="0" tag="245">
|
122
|
+
<subfield code="a">Rock with butterfly</subfield>
|
123
|
+
<subfield code="h">[graphic]</subfield>
|
124
|
+
</datafield>
|
125
|
+
<datafield ind1=" " ind2=" " tag="300">
|
126
|
+
<subfield code="a">1 woodblock print :</subfield>
|
127
|
+
<subfield code="b">col.</subfield>
|
128
|
+
</datafield>
|
129
|
+
<datafield ind1="0" ind2=" " tag="740">
|
130
|
+
<subfield code="a">Mustard seed garden painting manual</subfield>
|
131
|
+
</datafield>
|
132
|
+
<datafield ind1=" " ind2=" " tag="996">
|
133
|
+
<subfield code="a">b213512956</subfield>
|
134
|
+
<subfield code="b">Updated: 06-06-14</subfield>
|
135
|
+
<subfield code="c">Created: 06-05-14</subfield>
|
136
|
+
<subfield code="d">CatDate: - -</subfield>
|
137
|
+
<subfield code="9">LOCAL</subfield>
|
138
|
+
</datafield>
|
139
|
+
<datafield ind1=" " ind2=" " tag="AVA">
|
140
|
+
<subfield code="0">991008363529706532</subfield>
|
141
|
+
<subfield code="8">22703998890006532</subfield>
|
142
|
+
<subfield code="a">01UCS_BER</subfield>
|
143
|
+
<subfield code="b">MORR</subfield>
|
144
|
+
<subfield code="c">Morrison</subfield>
|
145
|
+
<subfield code="e">available</subfield>
|
146
|
+
<subfield code="f">1</subfield>
|
147
|
+
<subfield code="g">0</subfield>
|
148
|
+
<subfield code="i">UCB_Campus</subfield>
|
149
|
+
<subfield code="j">mo</subfield>
|
150
|
+
<subfield code="k">#</subfield>
|
151
|
+
<subfield code="p">1</subfield>
|
152
|
+
<subfield code="q">Morrison Library</subfield>
|
153
|
+
</datafield>
|
154
|
+
</record>
|
155
|
+
</recordData>
|
156
|
+
<recordIdentifier>991008363529706532</recordIdentifier>
|
157
|
+
<recordPosition>13</recordPosition>
|
158
|
+
</record>
|
159
|
+
<record>
|
160
|
+
<recordSchema>marcxml</recordSchema>
|
161
|
+
<recordPacking>xml</recordPacking>
|
162
|
+
<recordData>
|
163
|
+
<record xmlns="http://www.loc.gov/MARC21/slim">
|
164
|
+
<leader>00337nam a2200097 a 4500</leader>
|
165
|
+
<controlfield tag="001">991008402049706532</controlfield>
|
166
|
+
<controlfield tag="008">^^</controlfield>
|
167
|
+
<datafield ind1=" " ind2=" " tag="035">
|
168
|
+
<subfield code="a">(CUY)UCB-b213523097-01ucs_ber</subfield>
|
169
|
+
</datafield>
|
170
|
+
<datafield ind1="1" ind2=" " tag="100">
|
171
|
+
<subfield code="a">Wang, Gai.</subfield>
|
172
|
+
</datafield>
|
173
|
+
<datafield ind1="1" ind2="0" tag="245">
|
174
|
+
<subfield code="a">Rock with sparrows</subfield>
|
175
|
+
<subfield code="h">[graphic]</subfield>
|
176
|
+
</datafield>
|
177
|
+
<datafield ind1=" " ind2=" " tag="300">
|
178
|
+
<subfield code="a">1 woodblock print :</subfield>
|
179
|
+
<subfield code="b">col.</subfield>
|
180
|
+
</datafield>
|
181
|
+
<datafield ind1="0" ind2=" " tag="740">
|
182
|
+
<subfield code="a">Mustard seed garden painting manual</subfield>
|
183
|
+
</datafield>
|
184
|
+
<datafield ind1=" " ind2=" " tag="996">
|
185
|
+
<subfield code="a">b213523097</subfield>
|
186
|
+
<subfield code="b">Updated: 06-06-14</subfield>
|
187
|
+
<subfield code="c">Created: 06-06-14</subfield>
|
188
|
+
<subfield code="d">CatDate: - -</subfield>
|
189
|
+
<subfield code="9">LOCAL</subfield>
|
190
|
+
</datafield>
|
191
|
+
<datafield ind1=" " ind2=" " tag="AVA">
|
192
|
+
<subfield code="0">991008402049706532</subfield>
|
193
|
+
<subfield code="8">22871109920006532</subfield>
|
194
|
+
<subfield code="a">01UCS_BER</subfield>
|
195
|
+
<subfield code="b">MORR</subfield>
|
196
|
+
<subfield code="c">Morrison</subfield>
|
197
|
+
<subfield code="e">available</subfield>
|
198
|
+
<subfield code="f">1</subfield>
|
199
|
+
<subfield code="g">0</subfield>
|
200
|
+
<subfield code="i">UCB_Campus</subfield>
|
201
|
+
<subfield code="j">mo</subfield>
|
202
|
+
<subfield code="k">#</subfield>
|
203
|
+
<subfield code="p">1</subfield>
|
204
|
+
<subfield code="q">Morrison Library</subfield>
|
205
|
+
</datafield>
|
206
|
+
</record>
|
207
|
+
</recordData>
|
208
|
+
<recordIdentifier>991008402049706532</recordIdentifier>
|
209
|
+
<recordPosition>14</recordPosition>
|
210
|
+
</record>
|
211
|
+
<record>
|
212
|
+
<recordSchema>marcxml</recordSchema>
|
213
|
+
<recordPacking>xml</recordPacking>
|
214
|
+
<recordData>
|
215
|
+
<record xmlns="http://www.loc.gov/MARC21/slim">
|
216
|
+
<leader>00292nam a2200085 a 4500</leader>
|
217
|
+
<controlfield tag="001">991008719819706532</controlfield>
|
218
|
+
<controlfield tag="008">^^</controlfield>
|
219
|
+
<datafield ind1=" " ind2=" " tag="035">
|
220
|
+
<subfield code="a">(CUY)UCB-b214199502-01ucs_ber</subfield>
|
221
|
+
</datafield>
|
222
|
+
<datafield ind1="1" ind2=" " tag="100">
|
223
|
+
<subfield code="a">Saitō, Kiyoshi,</subfield>
|
224
|
+
<subfield code="d">1907-1997.</subfield>
|
225
|
+
</datafield>
|
226
|
+
<datafield ind1="1" ind2="0" tag="245">
|
227
|
+
<subfield code="a">Ryoan-ji, Kyoto</subfield>
|
228
|
+
<subfield code="h">[graphic]</subfield>
|
229
|
+
</datafield>
|
230
|
+
<datafield ind1=" " ind2=" " tag="300">
|
231
|
+
<subfield code="a">1 woodcut :</subfield>
|
232
|
+
<subfield code="b">col.</subfield>
|
233
|
+
</datafield>
|
234
|
+
<datafield ind1=" " ind2=" " tag="996">
|
235
|
+
<subfield code="a">b214199502</subfield>
|
236
|
+
<subfield code="b">Updated: 05-15-17</subfield>
|
237
|
+
<subfield code="c">Created: 07-09-14</subfield>
|
238
|
+
<subfield code="d">CatDate: - -</subfield>
|
239
|
+
<subfield code="9">LOCAL</subfield>
|
240
|
+
</datafield>
|
241
|
+
<datafield ind1=" " ind2=" " tag="AVA">
|
242
|
+
<subfield code="0">991008719819706532</subfield>
|
243
|
+
<subfield code="8">22892415050006532</subfield>
|
244
|
+
<subfield code="a">01UCS_BER</subfield>
|
245
|
+
<subfield code="b">MORR</subfield>
|
246
|
+
<subfield code="c">Morrison</subfield>
|
247
|
+
<subfield code="e">available</subfield>
|
248
|
+
<subfield code="f">1</subfield>
|
249
|
+
<subfield code="g">0</subfield>
|
250
|
+
<subfield code="i">UCB_Campus</subfield>
|
251
|
+
<subfield code="j">mo</subfield>
|
252
|
+
<subfield code="k">#</subfield>
|
253
|
+
<subfield code="p">1</subfield>
|
254
|
+
<subfield code="q">Morrison Library</subfield>
|
255
|
+
</datafield>
|
256
|
+
</record>
|
257
|
+
</recordData>
|
258
|
+
<recordIdentifier>991008719819706532</recordIdentifier>
|
259
|
+
<recordPosition>15</recordPosition>
|
260
|
+
</record>
|
261
|
+
</records>
|
262
|
+
<extraResponseData xmlns:xb="http://www.exlibris.com/repository/search/xmlbeans/">
|
263
|
+
<xb:exact>true</xb:exact>
|
264
|
+
<xb:responseDate>2022-05-05T12:53:30-0700</xb:responseDate>
|
265
|
+
</extraResponseData>
|
266
|
+
</searchRetrieveResponse>
|
@@ -0,0 +1,109 @@
|
|
1
|
+
<?xml version="1.0" encoding="UTF-8" standalone="no"?><searchRetrieveResponse xmlns="http://www.loc.gov/zing/srw/">
|
2
|
+
<version>1.2</version>
|
3
|
+
<numberOfRecords>2</numberOfRecords>
|
4
|
+
<records>
|
5
|
+
<record>
|
6
|
+
<recordSchema>marcxml</recordSchema>
|
7
|
+
<recordPacking>xml</recordPacking>
|
8
|
+
<recordData>
|
9
|
+
<record xmlns="http://www.loc.gov/MARC21/slim">
|
10
|
+
<leader>00307nam a2200085 a 4500</leader>
|
11
|
+
<controlfield tag="001">991005668359706532</controlfield>
|
12
|
+
<controlfield tag="008">^^</controlfield>
|
13
|
+
<datafield ind1=" " ind2=" " tag="035">
|
14
|
+
<subfield code="a">(CUY)UCB-b207766733-01ucs_ber</subfield>
|
15
|
+
</datafield>
|
16
|
+
<datafield ind1="1" ind2=" " tag="100">
|
17
|
+
<subfield code="a">Fukazawa, Yukio,</subfield>
|
18
|
+
<subfield code="d">1924-2017.</subfield>
|
19
|
+
</datafield>
|
20
|
+
<datafield ind1="1" ind2="0" tag="245">
|
21
|
+
<subfield code="a">Blue Doors</subfield>
|
22
|
+
<subfield code="h">[graphic]</subfield>
|
23
|
+
</datafield>
|
24
|
+
<datafield ind1=" " ind2=" " tag="300">
|
25
|
+
<subfield code="a">1 relief etching and aquatint :</subfield>
|
26
|
+
<subfield code="b">col.</subfield>
|
27
|
+
</datafield>
|
28
|
+
<datafield ind1=" " ind2=" " tag="996">
|
29
|
+
<subfield code="a">b207766733</subfield>
|
30
|
+
<subfield code="b">Updated: 01-09-19</subfield>
|
31
|
+
<subfield code="c">Created: 11-01-13</subfield>
|
32
|
+
<subfield code="d">CatDate: - -</subfield>
|
33
|
+
<subfield code="9">LOCAL</subfield>
|
34
|
+
</datafield>
|
35
|
+
<datafield ind1=" " ind2=" " tag="AVA">
|
36
|
+
<subfield code="0">991005668359706532</subfield>
|
37
|
+
<subfield code="8">22928381510006532</subfield>
|
38
|
+
<subfield code="a">01UCS_BER</subfield>
|
39
|
+
<subfield code="b">MORR</subfield>
|
40
|
+
<subfield code="c">Morrison</subfield>
|
41
|
+
<subfield code="e">unavailable</subfield>
|
42
|
+
<subfield code="f">1</subfield>
|
43
|
+
<subfield code="g">1</subfield>
|
44
|
+
<subfield code="i">UCB_Campus</subfield>
|
45
|
+
<subfield code="j">mo</subfield>
|
46
|
+
<subfield code="k">#</subfield>
|
47
|
+
<subfield code="p">1</subfield>
|
48
|
+
<subfield code="q">Morrison Library</subfield>
|
49
|
+
</datafield>
|
50
|
+
</record>
|
51
|
+
</recordData>
|
52
|
+
<recordIdentifier>991005668359706532</recordIdentifier>
|
53
|
+
<recordPosition>1</recordPosition>
|
54
|
+
</record>
|
55
|
+
<record>
|
56
|
+
<recordSchema>marcxml</recordSchema>
|
57
|
+
<recordPacking>xml</recordPacking>
|
58
|
+
<recordData>
|
59
|
+
<record xmlns="http://www.loc.gov/MARC21/slim">
|
60
|
+
<leader>00273nam a2200085 a 4500</leader>
|
61
|
+
<controlfield tag="001">991005668209706532</controlfield>
|
62
|
+
<controlfield tag="008">^^</controlfield>
|
63
|
+
<datafield ind1=" " ind2=" " tag="035">
|
64
|
+
<subfield code="a">(CUY)UCB-b207766708-01ucs_ber</subfield>
|
65
|
+
</datafield>
|
66
|
+
<datafield ind1="1" ind2=" " tag="100">
|
67
|
+
<subfield code="a">Beutlich, Tadek.</subfield>
|
68
|
+
</datafield>
|
69
|
+
<datafield ind1="1" ind2="0" tag="245">
|
70
|
+
<subfield code="a">River</subfield>
|
71
|
+
<subfield code="h">[graphic]</subfield>
|
72
|
+
</datafield>
|
73
|
+
<datafield ind1=" " ind2=" " tag="300">
|
74
|
+
<subfield code="a">1 lithograph :</subfield>
|
75
|
+
<subfield code="b">col.</subfield>
|
76
|
+
</datafield>
|
77
|
+
<datafield ind1=" " ind2=" " tag="996">
|
78
|
+
<subfield code="a">b207766708</subfield>
|
79
|
+
<subfield code="b">Updated: 11-01-13</subfield>
|
80
|
+
<subfield code="c">Created: 11-01-13</subfield>
|
81
|
+
<subfield code="d">CatDate: - -</subfield>
|
82
|
+
<subfield code="9">LOCAL</subfield>
|
83
|
+
</datafield>
|
84
|
+
<datafield ind1=" " ind2=" " tag="AVA">
|
85
|
+
<subfield code="0">991005668209706532</subfield>
|
86
|
+
<subfield code="8">22928389410006532</subfield>
|
87
|
+
<subfield code="a">01UCS_BER</subfield>
|
88
|
+
<subfield code="b">MORR</subfield>
|
89
|
+
<subfield code="c">Morrison</subfield>
|
90
|
+
<subfield code="e">available</subfield>
|
91
|
+
<subfield code="f">1</subfield>
|
92
|
+
<subfield code="g">0</subfield>
|
93
|
+
<subfield code="i">UCB_Campus</subfield>
|
94
|
+
<subfield code="j">mo</subfield>
|
95
|
+
<subfield code="k">#</subfield>
|
96
|
+
<subfield code="p">1</subfield>
|
97
|
+
<subfield code="q">Morrison Library</subfield>
|
98
|
+
</datafield>
|
99
|
+
</record>
|
100
|
+
</recordData>
|
101
|
+
<recordIdentifier>991005668209706532</recordIdentifier>
|
102
|
+
<recordPosition>2</recordPosition>
|
103
|
+
</record>
|
104
|
+
</records>
|
105
|
+
<extraResponseData xmlns:xb="http://www.exlibris.com/repository/search/xmlbeans/">
|
106
|
+
<xb:exact>true</xb:exact>
|
107
|
+
<xb:responseDate>2022-05-04T14:31:01-0700</xb:responseDate>
|
108
|
+
</extraResponseData>
|
109
|
+
</searchRetrieveResponse>
|
File without changes
|
@@ -0,0 +1,67 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
module BerkeleyLibrary
|
4
|
+
module Alma
|
5
|
+
describe BarCode do
|
6
|
+
before(:each) do
|
7
|
+
BerkeleyLibrary::Alma.configure do
|
8
|
+
Config.alma_sru_host = 'berkeley.alma.exlibrisgroup.com'
|
9
|
+
Config.alma_institution_code = '01UCS_BER'
|
10
|
+
Config.alma_primo_host = 'search.library.berkeley.edu'
|
11
|
+
Config.alma_permalink_key = 'iqob43'
|
12
|
+
end
|
13
|
+
end
|
14
|
+
|
15
|
+
after(:each) do
|
16
|
+
BerkeleyLibrary::Alma::Config.send(:clear!)
|
17
|
+
end
|
18
|
+
|
19
|
+
describe :new do
|
20
|
+
bad_barcode = 1234
|
21
|
+
it "raises an error for input that's not an string" do
|
22
|
+
expect { BarCode.new(bad_barcode) }.to raise_error(ArgumentError), "#{bad_barcode}: No error raised for #{bad_barcode}"
|
23
|
+
end
|
24
|
+
end
|
25
|
+
|
26
|
+
describe :marc_record do
|
27
|
+
it 'returns the MARC record' do
|
28
|
+
barcode_id = 'C084093187'
|
29
|
+
stub_sru_request('alma.barcode', barcode_id)
|
30
|
+
|
31
|
+
barcode = BerkeleyLibrary::Alma::BarCode.new(barcode_id)
|
32
|
+
marc_record = barcode.get_marc_record
|
33
|
+
expect(marc_record).not_to be_nil
|
34
|
+
end
|
35
|
+
|
36
|
+
it 'returns nil for an empty response' do
|
37
|
+
empty_sru_response = <<~XML.strip
|
38
|
+
<?xml version="1.0" encoding="UTF-8"?>
|
39
|
+
<searchRetrieveResponse>
|
40
|
+
<version>1.2</version>
|
41
|
+
<numberOfRecords>0</numberOfRecords>
|
42
|
+
<records/>
|
43
|
+
</searchRetrieveResponse>
|
44
|
+
XML
|
45
|
+
|
46
|
+
barcode_id = '991054360089706532doesntexist'
|
47
|
+
sru_url = sru_url_for('alma.barcode', barcode_id)
|
48
|
+
stub_request(:get, sru_url).to_return(status: 200, body: empty_sru_response)
|
49
|
+
|
50
|
+
barcode = BarCode.new(barcode_id)
|
51
|
+
marc_record = barcode.get_marc_record
|
52
|
+
expect(marc_record).to be_nil
|
53
|
+
end
|
54
|
+
|
55
|
+
it 'returns nil for an HTTP error response' do
|
56
|
+
barcode_id = '991054360089706532934j3h'
|
57
|
+
sru_url = sru_url_for('alma.barcode', barcode_id)
|
58
|
+
stub_request(:get, sru_url).to_return(status: 404)
|
59
|
+
|
60
|
+
barcode = BarCode.new(barcode_id)
|
61
|
+
marc_record = barcode.get_marc_record
|
62
|
+
expect(marc_record).to be_nil
|
63
|
+
end
|
64
|
+
end
|
65
|
+
end
|
66
|
+
end
|
67
|
+
end
|
@@ -90,7 +90,8 @@ module BerkeleyLibrary
|
|
90
90
|
describe :marc_record do
|
91
91
|
it 'returns the MARC record' do
|
92
92
|
raw_bib_number = 'b11082434'
|
93
|
-
|
93
|
+
full_bib_number = 'b110824349'
|
94
|
+
stub_sru_request('alma.local_field_996', full_bib_number)
|
94
95
|
|
95
96
|
bib_number = BibNumber.new(raw_bib_number)
|
96
97
|
marc_record = bib_number.get_marc_record
|
@@ -58,7 +58,7 @@ module BerkeleyLibrary
|
|
58
58
|
describe :marc_record do
|
59
59
|
it 'returns the MARC record' do
|
60
60
|
raw_mms_id = '991054360089706532'
|
61
|
-
stub_sru_request(raw_mms_id)
|
61
|
+
stub_sru_request('alma.mms_id', raw_mms_id)
|
62
62
|
|
63
63
|
mms_id = MMSID.new(raw_mms_id)
|
64
64
|
marc_record = mms_id.get_marc_record
|
@@ -77,7 +77,7 @@ module BerkeleyLibrary
|
|
77
77
|
XML
|
78
78
|
|
79
79
|
raw_mms_id = '991054360089706532'
|
80
|
-
sru_url = sru_url_for(raw_mms_id)
|
80
|
+
sru_url = sru_url_for('alma.mms_id', raw_mms_id)
|
81
81
|
stub_request(:get, sru_url).to_return(status: 200, body: empty_sru_response)
|
82
82
|
|
83
83
|
mms_id = MMSID.new(raw_mms_id)
|
@@ -87,7 +87,7 @@ module BerkeleyLibrary
|
|
87
87
|
|
88
88
|
it 'returns nil for an HTTP error response' do
|
89
89
|
raw_mms_id = '991054360089706532'
|
90
|
-
sru_url = sru_url_for(raw_mms_id)
|
90
|
+
sru_url = sru_url_for('alma.mms_id', raw_mms_id)
|
91
91
|
stub_request(:get, sru_url).to_return(status: 404)
|
92
92
|
|
93
93
|
mms_id = MMSID.new(raw_mms_id)
|
@@ -36,6 +36,26 @@ module BerkeleyLibrary
|
|
36
36
|
end
|
37
37
|
end
|
38
38
|
end
|
39
|
+
|
40
|
+
describe 'SRU methods' do
|
41
|
+
before { Config.default! }
|
42
|
+
after { Config.send(:clear!) }
|
43
|
+
|
44
|
+
describe :get_marc_xml do
|
45
|
+
let(:record_id) { RecordId.parse('991054360089706532') }
|
46
|
+
let(:expected_body) { File.read('spec/data/991054360089706532-sru.xml') }
|
47
|
+
|
48
|
+
before do
|
49
|
+
sru_query_uri = record_id.marc_uri
|
50
|
+
stub_request(:get, sru_query_uri).to_return(body: expected_body)
|
51
|
+
end
|
52
|
+
|
53
|
+
it 'returns the MARC XML' do
|
54
|
+
marc_xml = record_id.get_marc_xml
|
55
|
+
expect(marc_xml).to eq(expected_body)
|
56
|
+
end
|
57
|
+
end
|
58
|
+
end
|
39
59
|
end
|
40
60
|
end
|
41
61
|
end
|
@@ -0,0 +1,98 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
module BerkeleyLibrary
|
4
|
+
module Alma
|
5
|
+
describe SRU do
|
6
|
+
before { Config.default! }
|
7
|
+
after { Config.send(:clear!) }
|
8
|
+
|
9
|
+
describe :get_marc_records do
|
10
|
+
describe 'unpaginated' do
|
11
|
+
let(:mms_ids) { %w[991005668209706532 991005668359706532] }
|
12
|
+
|
13
|
+
before do
|
14
|
+
sru_query_value = mms_ids.map { |id| RecordId.parse(id) }.map(&:sru_query_value).join(' or ')
|
15
|
+
sru_query_uri = SRU.sru_query_uri(sru_query_value)
|
16
|
+
stub_request(:get, sru_query_uri).to_return(body: File.read('spec/data/availability-sru.xml'))
|
17
|
+
end
|
18
|
+
|
19
|
+
it 'returns all MARC records' do
|
20
|
+
reader = SRU.get_marc_records(*mms_ids)
|
21
|
+
marc_records = reader.to_a
|
22
|
+
expect(marc_records.size).to eq(mms_ids.size)
|
23
|
+
expect(marc_records.map(&:record_id)).to contain_exactly(*mms_ids)
|
24
|
+
end
|
25
|
+
end
|
26
|
+
|
27
|
+
describe 'paginated' do
|
28
|
+
let(:mms_ids) do
|
29
|
+
%w[
|
30
|
+
991005668209706532
|
31
|
+
991005668359706532
|
32
|
+
991005930379706532
|
33
|
+
991005931249706532
|
34
|
+
991007853589706532
|
35
|
+
991007902439706532
|
36
|
+
991007903029706532
|
37
|
+
991008363529706532
|
38
|
+
991008364649706532
|
39
|
+
991008401919706532
|
40
|
+
991008402049706532
|
41
|
+
991008718379706532
|
42
|
+
991008719659706532
|
43
|
+
991008719819706532
|
44
|
+
991009071149706532
|
45
|
+
]
|
46
|
+
end
|
47
|
+
|
48
|
+
let(:sru_query_value) { mms_ids.map { |id| RecordId.parse(id) }.map(&:sru_query_value).join(' or ') }
|
49
|
+
let(:query_uri_page_1) { SRU.sru_query_uri(sru_query_value) }
|
50
|
+
let(:query_uri_page_2) { BerkeleyLibrary::Util::URIs.append(query_uri_page_1, '&startRecord=11') }
|
51
|
+
|
52
|
+
before do
|
53
|
+
stub_request(:get, query_uri_page_1).to_return(body: File.read('spec/data/availability-sru-page-1.xml'))
|
54
|
+
end
|
55
|
+
|
56
|
+
it 'returns all the MARC records' do
|
57
|
+
stub_request(:get, query_uri_page_2).to_return(body: File.read('spec/data/availability-sru-page-2.xml'))
|
58
|
+
|
59
|
+
reader = SRU.get_marc_records(*mms_ids)
|
60
|
+
marc_records = reader.to_a
|
61
|
+
expect(marc_records.size).to eq(mms_ids.size)
|
62
|
+
expect(marc_records.map(&:record_id)).to contain_exactly(*mms_ids)
|
63
|
+
end
|
64
|
+
|
65
|
+
it 'does not freeze records by default' do
|
66
|
+
stub_request(:get, query_uri_page_2).to_return(body: File.read('spec/data/availability-sru-page-2.xml'))
|
67
|
+
|
68
|
+
reader = SRU.get_marc_records(*mms_ids)
|
69
|
+
reader.to_a.each do |record|
|
70
|
+
expect(record.frozen?).to eq(false)
|
71
|
+
end
|
72
|
+
end
|
73
|
+
|
74
|
+
it 'can freeze records' do
|
75
|
+
stub_request(:get, query_uri_page_2).to_return(body: File.read('spec/data/availability-sru-page-2.xml'))
|
76
|
+
|
77
|
+
reader = SRU.get_marc_records(*mms_ids, freeze: true)
|
78
|
+
reader.to_a.each do |record|
|
79
|
+
expect(record.frozen?).to eq(true)
|
80
|
+
end
|
81
|
+
end
|
82
|
+
|
83
|
+
it 'is lazy' do
|
84
|
+
reader = SRU.get_marc_records(*mms_ids)
|
85
|
+
marc_records = reader.take(10).to_a
|
86
|
+
expect(marc_records.size).to eq(10)
|
87
|
+
retrieved_ids = marc_records.map(&:record_id).uniq
|
88
|
+
expect(retrieved_ids.size).to eq(10)
|
89
|
+
|
90
|
+
# order is not guaranteed, so we don't necessarily get the first 10
|
91
|
+
retrieved_ids.each { |id| expect(mms_ids).to include(id) }
|
92
|
+
end
|
93
|
+
|
94
|
+
end
|
95
|
+
end
|
96
|
+
end
|
97
|
+
end
|
98
|
+
end
|