berkeley_library-alma 0.0.3 → 0.0.6
Sign up to get free protection for your applications and to get access to all the features.
- 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
|