voyager_api 0.3.7 → 0.3.8
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.
- data/VERSION +1 -1
- data/lib/holdings/collection.rb +36 -24
- data/lib/holdings/record.rb +13 -9
- data/lib/voyager_connection.rb +6 -6
- data/test/fixtures/holdings_2120018.xml +2 -0
- data/test/fixtures/holdings_8891001_3.xml +2 -0
- data/test/holdings/test_record.rb +8 -0
- data/test/test_voyager_api.rb +24 -0
- data/test/test_voyager_connection.rb +16 -1
- metadata +29 -27
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.3.
|
1
|
+
0.3.8
|
data/lib/holdings/collection.rb
CHANGED
@@ -3,7 +3,7 @@ module Voyager
|
|
3
3
|
class Collection
|
4
4
|
attr_reader :records, :xml
|
5
5
|
|
6
|
-
DEFAULT_OPAC_URL = "http://
|
6
|
+
DEFAULT_OPAC_URL = "http://vetiver.cc.columbia.edu:7014/vxws/GetHoldingsService"
|
7
7
|
|
8
8
|
# Invoke GetHoldingsService
|
9
9
|
def self.new_from_opac(bibid, conn = nil, url = DEFAULT_OPAC_URL)
|
@@ -13,10 +13,17 @@ module Voyager
|
|
13
13
|
|
14
14
|
# Convert raw xml from GetHoldingsService to xml record object
|
15
15
|
def initialize(raw_xml)
|
16
|
-
|
16
|
+
raise "Voyager::Holdings::Collection got nil/empty raw_xml" unless raw_xml
|
17
|
+
|
18
|
+
# transform raw_xml String into Nokogiri XML Document
|
19
|
+
xml = Nokogiri::XML(raw_xml)
|
20
|
+
raise "Voyager::Holdings::Collection retrieved nil/invalid XML" unless xml and xml.root
|
21
|
+
|
22
|
+
# transform raw_xml String into Nokogiri XML Document
|
23
|
+
@xml = add_xml_namespaces(xml)
|
17
24
|
parse_xml
|
18
25
|
end
|
19
|
-
|
26
|
+
|
20
27
|
# Generate output hash from Record class instances
|
21
28
|
def to_hash(options = {})
|
22
29
|
options.reverse_merge!(:output_type => :raw, :content_type => :full, :message_type => :long_message)
|
@@ -30,11 +37,11 @@ module Voyager
|
|
30
37
|
# if :content_type == :full
|
31
38
|
# :message_type --> :short_message | :long_message (default)
|
32
39
|
#
|
33
|
-
|
40
|
+
|
34
41
|
raise ":output_type not defined" unless options[:output_type] == :raw || options[:output_type] == :condensed
|
35
42
|
raise ":content_type not defined" unless options[:content_type] == :full || options[:content_type] == :brief
|
36
43
|
raise ":message_type not defined" unless options[:message_type] == :long_message || options[:message_type] == :short_message
|
37
|
-
|
44
|
+
|
38
45
|
output = {}
|
39
46
|
|
40
47
|
case options[:output_type]
|
@@ -50,16 +57,15 @@ module Voyager
|
|
50
57
|
output[:condensed_holdings_brief] = condense_holdings(holdings,options)
|
51
58
|
end
|
52
59
|
end
|
53
|
-
|
60
|
+
|
54
61
|
output
|
55
62
|
|
56
63
|
end
|
57
64
|
|
58
65
|
private
|
59
66
|
|
60
|
-
#
|
61
|
-
def
|
62
|
-
xml = Nokogiri::XML(raw_xml)
|
67
|
+
# Add searchable namespaces to xml object
|
68
|
+
def add_xml_namespaces(xml)
|
63
69
|
xml.root.add_namespace_definition("hol", "http://www.endinfosys.com/Voyager/holdings")
|
64
70
|
xml.root.add_namespace_definition("mfhd", "http://www.endinfosys.com/Voyager/mfhd")
|
65
71
|
xml.root.add_namespace_definition("item", "http://www.endinfosys.com/Voyager/item")
|
@@ -69,6 +75,12 @@ module Voyager
|
|
69
75
|
|
70
76
|
# Collect Record class instances for each mfhd:mfhdRecord node in xml record objext
|
71
77
|
def parse_xml
|
78
|
+
# First, look for any service messages - raise them as an error
|
79
|
+
if first_ser_message = @xml.at_xpath('//ser:messages/ser:message')
|
80
|
+
# just throw as Rails default StandardError, with details in the message
|
81
|
+
raise "#{first_ser_message.attr('errorCode')} #{first_ser_message.content}"
|
82
|
+
end
|
83
|
+
|
72
84
|
leader = @xml.at_css("hol|bibRecord>hol|marcRecord>slim|leader").content
|
73
85
|
@records = @xml.css("hol|mfhdCollection>mfhd|mfhdRecord").collect do |record_node|
|
74
86
|
Record.new(record_node,leader)
|
@@ -80,13 +92,13 @@ module Voyager
|
|
80
92
|
# -- remove document delivery options if there is an available offsite copy
|
81
93
|
# -- remove borrowdirect and ill options if there is an available non-reserve, circulating copy
|
82
94
|
def adjust_services(records)
|
83
|
-
|
95
|
+
|
84
96
|
# set flags
|
85
97
|
offsite_copy = "N"
|
86
98
|
available_copy = "N"
|
87
|
-
records.each do |record|
|
99
|
+
records.each do |record|
|
88
100
|
offsite_copy = "Y" if record.services.include?('offsite')
|
89
|
-
if record.item_status[:status] == 'available'
|
101
|
+
if record.item_status[:status] == 'available'
|
90
102
|
available_copy = "Y" unless record.location_name.match(/Reserve|Non\-Circ/)
|
91
103
|
end
|
92
104
|
end
|
@@ -97,11 +109,11 @@ module Voyager
|
|
97
109
|
record.services.delete('borrow_direct') if available_copy == "Y"
|
98
110
|
record.services.delete('ill') if available_copy == "Y"
|
99
111
|
end
|
100
|
-
|
112
|
+
|
101
113
|
end
|
102
114
|
|
103
115
|
def condense_holdings(holdings,options)
|
104
|
-
|
116
|
+
|
105
117
|
# processing varies depending on complexity
|
106
118
|
complexity = determine_complexity(holdings)
|
107
119
|
process_holdings(holdings,complexity,options)
|
@@ -128,10 +140,10 @@ module Voyager
|
|
128
140
|
|
129
141
|
def process_holdings(holdings,complexity,options)
|
130
142
|
|
131
|
-
entries = []
|
143
|
+
entries = []
|
132
144
|
holdings.each do |holding|
|
133
145
|
# test for location and call number
|
134
|
-
entry = entries.find { |entry| entry[:location_name] == holding[:location_name] &&
|
146
|
+
entry = entries.find { |entry| entry[:location_name] == holding[:location_name] &&
|
135
147
|
entry[:call_number] == holding[:call_number] }
|
136
148
|
|
137
149
|
unless entry
|
@@ -188,13 +200,13 @@ module Voyager
|
|
188
200
|
:summary_holdings, :temp_locations].each { |type| add_holdings_elements(out,holding,type,options[:message_type]) }
|
189
201
|
|
190
202
|
entry[:copies] << out
|
191
|
-
|
203
|
+
|
192
204
|
end
|
193
205
|
|
194
206
|
entry[:services] << holding[:services]
|
195
207
|
|
196
208
|
end
|
197
|
-
|
209
|
+
|
198
210
|
# get overall status of each location entry
|
199
211
|
entries.each { |entry| determine_overall_status(entry) }
|
200
212
|
|
@@ -206,7 +218,7 @@ module Voyager
|
|
206
218
|
end
|
207
219
|
|
208
220
|
def add_holdings_elements(out,holding,type,message_type)
|
209
|
-
|
221
|
+
|
210
222
|
case type
|
211
223
|
when :current_issues
|
212
224
|
out[type] = "Current Issues: " + holding[type].join('; ') unless holding[type].empty?
|
@@ -215,7 +227,7 @@ module Voyager
|
|
215
227
|
messages = holding[type].each.collect { |info| info[:message] }
|
216
228
|
out[type] = "Donor: " + messages.join('; ')
|
217
229
|
codes = holding[type].each.collect { |info| info[:code] }
|
218
|
-
out[:donor_info_code] = codes.join(' - ')
|
230
|
+
out[:donor_info_code] = codes.join(' - ')
|
219
231
|
end
|
220
232
|
when :indexes
|
221
233
|
out[type] = "Indexes: " + holding[type].join(' ') unless holding[type].empty?
|
@@ -236,11 +248,11 @@ module Voyager
|
|
236
248
|
out[type] = holding[type] unless holding[type].empty?
|
237
249
|
else
|
238
250
|
end
|
239
|
-
|
251
|
+
|
240
252
|
end
|
241
253
|
|
242
254
|
def determine_overall_status(entry)
|
243
|
-
|
255
|
+
|
244
256
|
a = 0 # available
|
245
257
|
s = 0 # some available
|
246
258
|
n = 0 # not available
|
@@ -292,7 +304,7 @@ module Voyager
|
|
292
304
|
end
|
293
305
|
|
294
306
|
def output_condensed_holdings(entries,type)
|
295
|
-
|
307
|
+
|
296
308
|
case type
|
297
309
|
when :full
|
298
310
|
entries
|
@@ -305,7 +317,7 @@ module Voyager
|
|
305
317
|
:services => entry[:services] }
|
306
318
|
end
|
307
319
|
end
|
308
|
-
|
320
|
+
|
309
321
|
end
|
310
322
|
|
311
323
|
end
|
data/lib/holdings/record.rb
CHANGED
@@ -213,12 +213,14 @@ module Voyager
|
|
213
213
|
tag867 = marc.css("slim|datafield[@tag='867']")
|
214
214
|
|
215
215
|
return [] unless tag867
|
216
|
-
|
217
|
-
supplements =
|
218
|
-
|
216
|
+
|
217
|
+
supplements = []
|
218
|
+
tag867.each do |field|
|
219
|
+
subs = field.css("slim|subfield").collect { |subfield| subfield.content if subfield.attr("code").match(/[az]/)}
|
220
|
+
supplements << subs.join(" ").strip unless subs.empty?
|
219
221
|
end
|
220
|
-
|
221
|
-
supplements
|
222
|
+
|
223
|
+
supplements
|
222
224
|
|
223
225
|
end
|
224
226
|
|
@@ -236,11 +238,13 @@ module Voyager
|
|
236
238
|
|
237
239
|
return [] unless tag868
|
238
240
|
|
239
|
-
indexes =
|
240
|
-
|
241
|
+
indexes = []
|
242
|
+
tag868.each do |field|
|
243
|
+
subs = field.css("slim|subfield").collect { |subfield| subfield.content if subfield.attr("code").match(/[az]/)}
|
244
|
+
indexes << subs.join(" ").strip unless subs.empty?
|
241
245
|
end
|
242
|
-
|
243
|
-
indexes
|
246
|
+
|
247
|
+
indexes
|
244
248
|
|
245
249
|
end
|
246
250
|
|
data/lib/voyager_connection.rb
CHANGED
@@ -8,7 +8,7 @@ module Voyager
|
|
8
8
|
@cookie_path = options[:cookie_path]
|
9
9
|
|
10
10
|
set_cookie_path if @cookie_path
|
11
|
-
|
11
|
+
|
12
12
|
|
13
13
|
end
|
14
14
|
|
@@ -19,11 +19,11 @@ module Voyager
|
|
19
19
|
return request
|
20
20
|
end
|
21
21
|
|
22
|
-
def clean_session!(server = "http://
|
22
|
+
def clean_session!(server = "http://vetiver.cc.columbia.edu:7014")
|
23
23
|
@http_client.get_content(server + "/vxws/SessionCleanupService")
|
24
|
-
|
24
|
+
|
25
25
|
end
|
26
|
-
|
26
|
+
|
27
27
|
private
|
28
28
|
|
29
29
|
|
@@ -33,8 +33,8 @@ module Voyager
|
|
33
33
|
FileUtils.mkdir_p(cookie_directory) unless File.exists?(cookie_directory)
|
34
34
|
|
35
35
|
@http_client.set_cookie_store(@cookie_path)
|
36
|
-
|
37
|
-
|
36
|
+
|
37
|
+
|
38
38
|
end
|
39
39
|
end
|
40
40
|
end
|
@@ -0,0 +1,2 @@
|
|
1
|
+
<?xml version="1.0" encoding="UTF-8"?>
|
2
|
+
<ser:voyagerServiceData xmlns:ser="http://www.endinfosys.com/Voyager/serviceParameters"><ser:serviceData xsi:type="hol:holdingsCollectionType" xmlns:hol="http://www.endinfosys.com/Voyager/holdings" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"><hol:holdingsRecord><hol:bibRecord bibId="2120018" dpsFlag="N"><hol:marcRecord><slim:leader xmlns:slim="http://www.loc.gov/MARC21/slim">00891mas a22003011 4500</slim:leader><slim:controlfield tag="001" xmlns:slim="http://www.loc.gov/MARC21/slim">2120018</slim:controlfield><slim:controlfield tag="005" xmlns:slim="http://www.loc.gov/MARC21/slim">20100219074209.0</slim:controlfield><slim:controlfield tag="008" xmlns:slim="http://www.loc.gov/MARC21/slim">900328u1879uuuufr ar c 0 0fre d</slim:controlfield><slim:datafield ind2=" " ind1=" " tag="035" xmlns:slim="http://www.loc.gov/MARC21/slim"><slim:subfield code="a">(OCoLC)504235520</slim:subfield></slim:datafield><slim:datafield ind2=" " ind1=" " tag="035" xmlns:slim="http://www.loc.gov/MARC21/slim"><slim:subfield code="a">(OCoLC)ocn504235520</slim:subfield></slim:datafield><slim:datafield ind2=" " ind1=" " tag="035" xmlns:slim="http://www.loc.gov/MARC21/slim"><slim:subfield code="9">ANF8070CU</slim:subfield></slim:datafield><slim:datafield ind2=" " ind1=" " tag="035" xmlns:slim="http://www.loc.gov/MARC21/slim"><slim:subfield code="a">(NNC)2120018</slim:subfield></slim:datafield><slim:datafield ind2=" " ind1=" " tag="040" xmlns:slim="http://www.loc.gov/MARC21/slim"><slim:subfield code="a">NNC</slim:subfield><slim:subfield code="c">NNC</slim:subfield></slim:datafield><slim:datafield ind2=" " ind1="2" tag="111" xmlns:slim="http://www.loc.gov/MARC21/slim"><slim:subfield code="a">Salon (Exhibition : Paris, France)</slim:subfield></slim:datafield><slim:datafield ind2="0" ind1="1" tag="245" xmlns:slim="http://www.loc.gov/MARC21/slim"><slim:subfield code="a">Catalogue illustré ...</slim:subfield><slim:subfield code="b">[sections de peinture et de sculpture]</slim:subfield></slim:datafield><slim:datafield ind2=" " ind1=" " tag="250" xmlns:slim="http://www.loc.gov/MARC21/slim"><slim:subfield code="a">"Nouvelle édition"</slim:subfield></slim:datafield><slim:datafield ind2=" " ind1=" " tag="260" xmlns:slim="http://www.loc.gov/MARC21/slim"><slim:subfield code="a">Paris,</slim:subfield><slim:subfield code="c">1882-</slim:subfield></slim:datafield><slim:datafield ind2=" " ind1=" " tag="300" xmlns:slim="http://www.loc.gov/MARC21/slim"><slim:subfield code="a">v.</slim:subfield><slim:subfield code="b">illus., plates.</slim:subfield><slim:subfield code="c">23 cm.</slim:subfield></slim:datafield><slim:datafield ind2=" " ind1=" " tag="310" xmlns:slim="http://www.loc.gov/MARC21/slim"><slim:subfield code="a">Annual</slim:subfield></slim:datafield><slim:datafield ind2=" " ind1="0" tag="362" xmlns:slim="http://www.loc.gov/MARC21/slim"><slim:subfield code="a">année 1- 1879-</slim:subfield></slim:datafield><slim:datafield ind2=" " ind1=" " tag="500" xmlns:slim="http://www.loc.gov/MARC21/slim"><slim:subfield code="a">Title varies slightly.</slim:subfield></slim:datafield><slim:datafield ind2=" " ind1=" " tag="500" xmlns:slim="http://www.loc.gov/MARC21/slim"><slim:subfield code="a">1901 - under the Société des artistes français.</slim:subfield></slim:datafield><slim:datafield ind2=" " ind1=" " tag="500" xmlns:slim="http://www.loc.gov/MARC21/slim"><slim:subfield code="a">1879 is "nouvelle édition"</slim:subfield></slim:datafield><slim:datafield ind2="0" ind1=" " tag="650" xmlns:slim="http://www.loc.gov/MARC21/slim"><slim:subfield code="a">Art</slim:subfield><slim:subfield code="v">Exhibitions.</slim:subfield></slim:datafield><slim:datafield ind2="0" ind1=" " tag="650" xmlns:slim="http://www.loc.gov/MARC21/slim"><slim:subfield code="a">Painting</slim:subfield><slim:subfield code="v">Exhibitions.</slim:subfield></slim:datafield><slim:datafield ind2="0" ind1=" " tag="650" xmlns:slim="http://www.loc.gov/MARC21/slim"><slim:subfield code="a">Sculpture</slim:subfield><slim:subfield code="v">Exhibitions.</slim:subfield></slim:datafield><slim:datafield ind2=" " ind1=" " tag="900" xmlns:slim="http://www.loc.gov/MARC21/slim"><slim:subfield code="a">AUTH</slim:subfield></slim:datafield><slim:datafield ind2=" " ind1=" " tag="965" xmlns:slim="http://www.loc.gov/MARC21/slim"><slim:subfield code="a">RECON</slim:subfield></slim:datafield></hol:marcRecord><hol:bibData name="databaseCode">LOCAL</hol:bibData><hol:bibData name="databaseName">Local Database</hol:bibData><hol:bibData name="createDate">2003-05-05 00:00:00</hol:bibData><hol:bibData name="updateDate">2010-02-19 07:42:09</hol:bibData><hol:bibData name="suppressInOpac">N</hol:bibData><hol:bibData name="exportOK">N</hol:bibData><hol:bibData name="exportOKDate" xsi:nil="true"/><hol:bibData name="exportOperatorId" xsi:nil="true"/><hol:bibData name="createLocation" xsi:nil="true"/><hol:bibData name="updateLocation" xsi:nil="true"/><hol:bibData name="exportOKLocation" xsi:nil="true"/><hol:bibData name="owningLibrary" id="1">COLUMBIA</hol:bibData></hol:bibRecord><hol:mfhdCollection><mfhd:mfhdRecord bibId="2120018" mfhdId="2580600" xmlns:mfhd="http://www.endinfosys.com/Voyager/mfhd"><mfhd:marcRecord><slim:leader xmlns:slim="http://www.loc.gov/MARC21/slim">00411cy a22001214 4500</slim:leader><slim:controlfield tag="001" xmlns:slim="http://www.loc.gov/MARC21/slim">2580600</slim:controlfield><slim:controlfield tag="004" xmlns:slim="http://www.loc.gov/MARC21/slim">2120018</slim:controlfield><slim:controlfield tag="005" xmlns:slim="http://www.loc.gov/MARC21/slim">20130716143304.0</slim:controlfield><slim:controlfield tag="008" xmlns:slim="http://www.loc.gov/MARC21/slim">980417|| | | ||||| </slim:controlfield><slim:datafield ind2=" " ind1="1" tag="014" xmlns:slim="http://www.loc.gov/MARC21/slim"><slim:subfield code="a">ANF8070CU001</slim:subfield></slim:datafield><slim:datafield ind2="1" ind1="8" tag="852" xmlns:slim="http://www.loc.gov/MARC21/slim"><slim:subfield code="b">far</slim:subfield><slim:subfield code="h">N5069</slim:subfield><slim:subfield code="i">P211</slim:subfield></slim:datafield><slim:datafield ind2="1" ind1="4" tag="866" xmlns:slim="http://www.loc.gov/MARC21/slim"><slim:subfield code="8">0</slim:subfield><slim:subfield code="a">année 1 (1879)-année 11 (1889), année 14 (1892)-année 15 (1893), année 18 (1896)-année 19 (1897), année 23 (1901)-année 36 (1914)</slim:subfield></slim:datafield><slim:datafield ind2="1" ind1="4" tag="867" xmlns:slim="http://www.loc.gov/MARC21/slim"><slim:subfield code="8">0</slim:subfield><slim:subfield code="a">1880-1881</slim:subfield><slim:subfield code="z">bound in 1 v.</slim:subfield></slim:datafield></mfhd:marcRecord><mfhd:mfhdData name="databaseCode">LOCAL</mfhd:mfhdData><mfhd:mfhdData name="databaseName">Local Database</mfhd:mfhdData><mfhd:mfhdData name="mfhdStubFlag">0</mfhd:mfhdData><mfhd:mfhdData name="createOperatorId">load</mfhd:mfhdData><mfhd:mfhdData name="updateOperatorId">bb2316</mfhd:mfhdData><mfhd:mfhdData name="createDate">2003-05-06 00:00:00</mfhd:mfhdData><mfhd:mfhdData name="updateDate">2013-07-16 14:33:04</mfhd:mfhdData><mfhd:mfhdData name="createLocation" xsi:nil="true"/><mfhd:mfhdData name="updateLocation">CATCUL</mfhd:mfhdData><mfhd:mfhdData name="suppressInOpac">N</mfhd:mfhdData><mfhd:mfhdData name="exportOK" xsi:nil="true"/><mfhd:mfhdData name="sourceModule">C</mfhd:mfhdData><mfhd:mfhdData name="callNumber">N5069 P211</mfhd:mfhdData><mfhd:mfhdData name="locationCode" id="131">far</mfhd:mfhdData><mfhd:mfhdData name="locationName" xsi:nil="true"/><mfhd:mfhdData name="locationDisplayName">Avery Classics (Non-Circulating)</mfhd:mfhdData><mfhd:mfhdData name="locationSpineLabel">far</mfhd:mfhdData><mfhd:mfhdData name="owningLibrary" id="1">COLUMBIA</mfhd:mfhdData><mfhd:itemCollection><item:itemCount xmlns:item="http://www.endinfosys.com/Voyager/item">30</item:itemCount><item:itemRecord xmlns:item="http://www.endinfosys.com/Voyager/item"><item:itemData name="statusCode">1</item:itemData><item:itemData name="statusDate" xsi:nil="true"/><item:itemData name="holdLocation" xsi:nil="true"/><item:itemData name="requestCount">0</item:itemData><item:itemData name="patronGroupCode" xsi:nil="true"/><item:itemData name="lastName" xsi:nil="true"/><item:itemData name="firstName" xsi:nil="true"/><item:itemData name="todaysDate">2013-07-31 11:41:35</item:itemData><item:itemData name="enumeration" xsi:nil="true"/><item:itemData name="chronology" xsi:nil="true"/><item:itemData name="year" xsi:nil="true"/><item:itemData name="caption" xsi:nil="true"/><item:itemData name="text" xsi:nil="true"/><item:itemData name="copyNumber" xsi:nil="true"/><item:itemData name="callNumber"/></item:itemRecord><item:itemLocation xmlns:item="http://www.endinfosys.com/Voyager/item"><item:itemLocationData name="tmpLoc" xsi:nil="true"/><item:itemLocationData name="tempLocation">Avery Classics (Non-Circulating)</item:itemLocationData><item:itemLocationData name="itemEnum" xsi:nil="true"/><item:itemLocationData name="itemChron" xsi:nil="true"/><item:itemLocationData name="itemYear" xsi:nil="true"/><item:itemLocationData name="itemCaption" xsi:nil="true"/><item:itemLocationData name="itemFreeText" xsi:nil="true"/><item:itemLocationData name="itemCopyNumber" xsi:nil="true"/></item:itemLocation></mfhd:itemCollection></mfhd:mfhdRecord><mfhd:mfhdRecord bibId="2120018" mfhdId="13450046" xmlns:mfhd="http://www.endinfosys.com/Voyager/mfhd"><mfhd:marcRecord><slim:leader xmlns:slim="http://www.loc.gov/MARC21/slim">00210cy a22000974 4500</slim:leader><slim:controlfield tag="001" xmlns:slim="http://www.loc.gov/MARC21/slim">13450046</slim:controlfield><slim:controlfield tag="004" xmlns:slim="http://www.loc.gov/MARC21/slim">2120018</slim:controlfield><slim:controlfield tag="005" xmlns:slim="http://www.loc.gov/MARC21/slim">20130716143024.0</slim:controlfield><slim:controlfield tag="008" xmlns:slim="http://www.loc.gov/MARC21/slim">1307162p 8 2001aa 0901128</slim:controlfield><slim:datafield ind2="1" ind1="8" tag="852" xmlns:slim="http://www.loc.gov/MARC21/slim"><slim:subfield code="b">far</slim:subfield><slim:subfield code="h">N5069</slim:subfield><slim:subfield code="i">P211</slim:subfield></slim:datafield><slim:datafield ind2="1" ind1="4" tag="866" xmlns:slim="http://www.loc.gov/MARC21/slim"><slim:subfield code="8">0</slim:subfield><slim:subfield code="a">année 2 (1880)</slim:subfield></slim:datafield></mfhd:marcRecord><mfhd:mfhdData name="databaseCode">LOCAL</mfhd:mfhdData><mfhd:mfhdData name="databaseName">Local Database</mfhd:mfhdData><mfhd:mfhdData name="mfhdStubFlag">0</mfhd:mfhdData><mfhd:mfhdData name="createOperatorId">bb2316</mfhd:mfhdData><mfhd:mfhdData name="updateOperatorId">bb2316</mfhd:mfhdData><mfhd:mfhdData name="createDate">2013-07-16 14:05:00</mfhd:mfhdData><mfhd:mfhdData name="updateDate">2013-07-16 14:30:24</mfhd:mfhdData><mfhd:mfhdData name="createLocation">CATCUL</mfhd:mfhdData><mfhd:mfhdData name="updateLocation">CATCUL</mfhd:mfhdData><mfhd:mfhdData name="suppressInOpac">N</mfhd:mfhdData><mfhd:mfhdData name="exportOK">N</mfhd:mfhdData><mfhd:mfhdData name="sourceModule">C</mfhd:mfhdData><mfhd:mfhdData name="callNumber">N5069 P211</mfhd:mfhdData><mfhd:mfhdData name="locationCode" id="131">far</mfhd:mfhdData><mfhd:mfhdData name="locationName" xsi:nil="true"/><mfhd:mfhdData name="locationDisplayName">Avery Classics (Non-Circulating)</mfhd:mfhdData><mfhd:mfhdData name="locationSpineLabel">far</mfhd:mfhdData><mfhd:mfhdData name="owningLibrary" id="1">COLUMBIA</mfhd:mfhdData><mfhd:itemCollection><item:itemCount xmlns:item="http://www.endinfosys.com/Voyager/item">1</item:itemCount><item:itemRecord xmlns:item="http://www.endinfosys.com/Voyager/item"><item:itemData name="statusCode">1</item:itemData><item:itemData name="statusDate" xsi:nil="true"/><item:itemData name="holdLocation" xsi:nil="true"/><item:itemData name="requestCount">0</item:itemData><item:itemData name="patronGroupCode" xsi:nil="true"/><item:itemData name="lastName" xsi:nil="true"/><item:itemData name="firstName" xsi:nil="true"/><item:itemData name="todaysDate">2013-07-31 11:41:35</item:itemData><item:itemData name="enumeration" xsi:nil="true"/><item:itemData name="chronology" xsi:nil="true"/><item:itemData name="year" xsi:nil="true"/><item:itemData name="caption" xsi:nil="true"/><item:itemData name="text" xsi:nil="true"/><item:itemData name="copyNumber" xsi:nil="true"/><item:itemData name="callNumber"/></item:itemRecord><item:itemLocation xmlns:item="http://www.endinfosys.com/Voyager/item"><item:itemLocationData name="tmpLoc" xsi:nil="true"/><item:itemLocationData name="tempLocation">Avery Classics (Non-Circulating)</item:itemLocationData><item:itemLocationData name="itemEnum" xsi:nil="true"/><item:itemLocationData name="itemChron" xsi:nil="true"/><item:itemLocationData name="itemYear" xsi:nil="true"/><item:itemLocationData name="itemCaption" xsi:nil="true"/><item:itemLocationData name="itemFreeText" xsi:nil="true"/><item:itemLocationData name="itemCopyNumber" xsi:nil="true"/></item:itemLocation></mfhd:itemCollection></mfhd:mfhdRecord></hol:mfhdCollection></hol:holdingsRecord></ser:serviceData></ser:voyagerServiceData>
|
@@ -0,0 +1,2 @@
|
|
1
|
+
<?xml version="1.0" encoding="UTF-8"?>
|
2
|
+
<ser:voyagerServiceData xmlns:ser="http://www.endinfosys.com/Voyager/serviceParameters"><ser:serviceData xsi:type="hol:holdingsCollectionType" xmlns:hol="http://www.endinfosys.com/Voyager/holdings" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"><hol:holdingsRecord><hol:bibRecord bibId="8891001" dpsFlag="N"><hol:marcRecord><slim:leader xmlns:slim="http://www.loc.gov/MARC21/slim">00161cam a2200073 i 4500</slim:leader><slim:controlfield tag="001" xmlns:slim="http://www.loc.gov/MARC21/slim">8891001</slim:controlfield><slim:controlfield tag="005" xmlns:slim="http://www.loc.gov/MARC21/slim">20130731130319.0</slim:controlfield><slim:controlfield tag="008" xmlns:slim="http://www.loc.gov/MARC21/slim">110801b ilua 000 0 eng </slim:controlfield><slim:datafield ind2="0" ind1="0" tag="245" xmlns:slim="http://www.loc.gov/MARC21/slim"><slim:subfield code="a">GJBtest record 5</slim:subfield></slim:datafield></hol:marcRecord><hol:bibData name="databaseCode">LOCAL</hol:bibData><hol:bibData name="databaseName">Local Database</hol:bibData><hol:bibData name="createDate">2011-08-01 15:51:13</hol:bibData><hol:bibData name="updateDate">2013-07-31 13:03:19</hol:bibData><hol:bibData name="suppressInOpac">N</hol:bibData><hol:bibData name="exportOK">N</hol:bibData><hol:bibData name="exportOKDate" xsi:nil="true"/><hol:bibData name="exportOperatorId" xsi:nil="true"/><hol:bibData name="createLocation">CATCUL</hol:bibData><hol:bibData name="updateLocation">CATCUL</hol:bibData><hol:bibData name="exportOKLocation" xsi:nil="true"/><hol:bibData name="owningLibrary" id="1">COLUMBIA</hol:bibData></hol:bibRecord><hol:mfhdCollection><mfhd:mfhdRecord bibId="8891001" mfhdId="11964457" xmlns:mfhd="http://www.endinfosys.com/Voyager/mfhd"><mfhd:marcRecord><slim:leader xmlns:slim="http://www.loc.gov/MARC21/slim">00431cx a22001334 4500</slim:leader><slim:controlfield tag="001" xmlns:slim="http://www.loc.gov/MARC21/slim">11964457</slim:controlfield><slim:controlfield tag="004" xmlns:slim="http://www.loc.gov/MARC21/slim">8891001</slim:controlfield><slim:controlfield tag="005" xmlns:slim="http://www.loc.gov/MARC21/slim">20130731130138.0</slim:controlfield><slim:controlfield tag="008" xmlns:slim="http://www.loc.gov/MARC21/slim">1108014u 8 1001uu 0901128</slim:controlfield><slim:datafield ind2=" " ind1=" " tag="843" xmlns:slim="http://www.loc.gov/MARC21/slim"><slim:subfield code="a">Microfilm.</slim:subfield><slim:subfield code="m">1950-1963.</slim:subfield><slim:subfield code="b">Webster, N.Y. :</slim:subfield><slim:subfield code="c">Photographic Sciences Corp.,</slim:subfield><slim:subfield code="d">1974-</slim:subfield><slim:subfield code="e">2 microfilm reels ; 35 mm.</slim:subfield></slim:datafield><slim:datafield ind2="0" ind1="1" tag="852" xmlns:slim="http://www.loc.gov/MARC21/slim"><slim:subfield code="b">bus</slim:subfield><slim:subfield code="h">GB500</slim:subfield><slim:subfield code="i">.G65</slim:subfield><slim:subfield code="l">Shelving title</slim:subfield></slim:datafield><slim:datafield ind2="0" ind1="4" tag="856" xmlns:slim="http://www.loc.gov/MARC21/slim"><slim:subfield code="3">Part 1</slim:subfield><slim:subfield code="u">http://www.columbia.edu</slim:subfield><slim:subfield code="z">Full text</slim:subfield></slim:datafield><slim:datafield ind2="0" ind1="4" tag="867" xmlns:slim="http://www.loc.gov/MARC21/slim"><slim:subfield code="a">Supplement</slim:subfield></slim:datafield><slim:datafield ind2="0" ind1="4" tag="868" xmlns:slim="http://www.loc.gov/MARC21/slim"><slim:subfield code="a">Index</slim:subfield><slim:subfield code="z">with note.</slim:subfield></slim:datafield></mfhd:marcRecord><mfhd:mfhdData name="databaseCode">LOCAL</mfhd:mfhdData><mfhd:mfhdData name="databaseName">Local Database</mfhd:mfhdData><mfhd:mfhdData name="mfhdStubFlag">0</mfhd:mfhdData><mfhd:mfhdData name="createOperatorId">bertchume</mfhd:mfhdData><mfhd:mfhdData name="updateOperatorId">bertchume</mfhd:mfhdData><mfhd:mfhdData name="createDate">2011-08-01 15:53:08</mfhd:mfhdData><mfhd:mfhdData name="updateDate">2013-07-31 13:01:38</mfhd:mfhdData><mfhd:mfhdData name="createLocation">CATCUL</mfhd:mfhdData><mfhd:mfhdData name="updateLocation">CATCUL</mfhd:mfhdData><mfhd:mfhdData name="suppressInOpac">N</mfhd:mfhdData><mfhd:mfhdData name="exportOK">N</mfhd:mfhdData><mfhd:mfhdData name="sourceModule">C</mfhd:mfhdData><mfhd:mfhdData name="callNumber">GB500 .G65</mfhd:mfhdData><mfhd:mfhdData name="locationCode" id="48">bus</mfhd:mfhdData><mfhd:mfhdData name="locationName" xsi:nil="true"/><mfhd:mfhdData name="locationDisplayName">Business</mfhd:mfhdData><mfhd:mfhdData name="locationSpineLabel">BUSINESS</mfhd:mfhdData><mfhd:mfhdData name="owningLibrary" id="1">COLUMBIA</mfhd:mfhdData><mfhd:itemCollection><item:itemCount xmlns:item="http://www.endinfosys.com/Voyager/item">0</item:itemCount><item:itemLocation xmlns:item="http://www.endinfosys.com/Voyager/item"><item:itemLocationData name="tmpLoc" xsi:nil="true"/><item:itemLocationData name="tempLocation">Business</item:itemLocationData><item:itemLocationData name="itemEnum" xsi:nil="true"/><item:itemLocationData name="itemChron" xsi:nil="true"/><item:itemLocationData name="itemYear" xsi:nil="true"/><item:itemLocationData name="itemCaption" xsi:nil="true"/><item:itemLocationData name="itemFreeText" xsi:nil="true"/><item:itemLocationData name="itemCopyNumber" xsi:nil="true"/></item:itemLocation></mfhd:itemCollection></mfhd:mfhdRecord><mfhd:mfhdRecord bibId="8891001" mfhdId="11970625" xmlns:mfhd="http://www.endinfosys.com/Voyager/mfhd"><mfhd:marcRecord><slim:leader xmlns:slim="http://www.loc.gov/MARC21/slim">00350nx a22001334 4500</slim:leader><slim:controlfield tag="001" xmlns:slim="http://www.loc.gov/MARC21/slim">11970625</slim:controlfield><slim:controlfield tag="004" xmlns:slim="http://www.loc.gov/MARC21/slim">8891001</slim:controlfield><slim:controlfield tag="005" xmlns:slim="http://www.loc.gov/MARC21/slim">20110802122150.0</slim:controlfield><slim:controlfield tag="008" xmlns:slim="http://www.loc.gov/MARC21/slim">1108024u 8 1001uu 0901128</slim:controlfield><slim:datafield ind2=" " ind1=" " tag="852" xmlns:slim="http://www.loc.gov/MARC21/slim"><slim:subfield code="b">lweb</slim:subfield><slim:subfield code="h">EBOOK</slim:subfield></slim:datafield><slim:datafield ind2="1" ind1="4" tag="856" xmlns:slim="http://www.loc.gov/MARC21/slim"><slim:subfield code="h">ttp://www.google.com</slim:subfield></slim:datafield><slim:datafield ind2="0" ind1="4" tag="856" xmlns:slim="http://www.loc.gov/MARC21/slim"><slim:subfield code="u">http://www.columbia.edu</slim:subfield></slim:datafield><slim:datafield ind2="0" ind1="4" tag="856" xmlns:slim="http://www.loc.gov/MARC21/slim"><slim:subfield code="u">http://libraries.columbia.edu</slim:subfield><slim:subfield code="z">Library Website</slim:subfield></slim:datafield><slim:datafield ind2="0" ind1="4" tag="856" xmlns:slim="http://www.loc.gov/MARC21/slim"><slim:subfield code="3">Part 1</slim:subfield><slim:subfield code="u">http://website 1</slim:subfield></slim:datafield></mfhd:marcRecord><mfhd:mfhdData name="databaseCode">LOCAL</mfhd:mfhdData><mfhd:mfhdData name="databaseName">Local Database</mfhd:mfhdData><mfhd:mfhdData name="mfhdStubFlag">0</mfhd:mfhdData><mfhd:mfhdData name="createOperatorId">bertchume</mfhd:mfhdData><mfhd:mfhdData name="updateOperatorId" xsi:nil="true"/><mfhd:mfhdData name="createDate">2011-08-02 12:21:50</mfhd:mfhdData><mfhd:mfhdData name="updateDate" xsi:nil="true"/><mfhd:mfhdData name="createLocation">CATCUL</mfhd:mfhdData><mfhd:mfhdData name="updateLocation" xsi:nil="true"/><mfhd:mfhdData name="suppressInOpac">N</mfhd:mfhdData><mfhd:mfhdData name="exportOK">N</mfhd:mfhdData><mfhd:mfhdData name="sourceModule">C</mfhd:mfhdData><mfhd:mfhdData name="callNumber">EBOOK</mfhd:mfhdData><mfhd:mfhdData name="locationCode" id="238">lweb</mfhd:mfhdData><mfhd:mfhdData name="locationName" xsi:nil="true"/><mfhd:mfhdData name="locationDisplayName">Online</mfhd:mfhdData><mfhd:mfhdData name="locationSpineLabel">lweb</mfhd:mfhdData><mfhd:mfhdData name="owningLibrary" id="1">COLUMBIA</mfhd:mfhdData><mfhd:itemCollection><item:itemCount xmlns:item="http://www.endinfosys.com/Voyager/item">0</item:itemCount><item:itemLocation xmlns:item="http://www.endinfosys.com/Voyager/item"><item:itemLocationData name="tmpLoc" xsi:nil="true"/><item:itemLocationData name="tempLocation">Online</item:itemLocationData><item:itemLocationData name="itemEnum" xsi:nil="true"/><item:itemLocationData name="itemChron" xsi:nil="true"/><item:itemLocationData name="itemYear" xsi:nil="true"/><item:itemLocationData name="itemCaption" xsi:nil="true"/><item:itemLocationData name="itemFreeText" xsi:nil="true"/><item:itemLocationData name="itemCopyNumber" xsi:nil="true"/></item:itemLocation></mfhd:itemCollection></mfhd:mfhdRecord></hol:mfhdCollection></hol:holdingsRecord></ser:serviceData></ser:voyagerServiceData>
|
@@ -93,12 +93,20 @@ class TestHoldings < HoldingsTestCase
|
|
93
93
|
record = load_fixture("holdings_8891001.xml").records.first
|
94
94
|
assert_kind_of Array, record.supplements
|
95
95
|
assert_equal 'Supplement', record.supplements[0], '867 fields'
|
96
|
+
|
97
|
+
record = load_fixture("holdings_2120018.xml").records.first
|
98
|
+
assert_kind_of Array, record.supplements
|
99
|
+
assert_equal '1880-1881 bound in 1 v.', record.supplements[0], '867 fields'
|
96
100
|
end
|
97
101
|
|
98
102
|
def test_indexes
|
99
103
|
record = load_fixture("holdings_8891001.xml").records.first
|
100
104
|
assert_kind_of Array, record.indexes
|
101
105
|
assert_equal 'Index', record.indexes[0], '868 fields'
|
106
|
+
|
107
|
+
record = load_fixture("holdings_8891001_3.xml").records.first
|
108
|
+
assert_kind_of Array, record.indexes
|
109
|
+
assert_equal 'Index with note.', record.indexes[0], '868 fields'
|
102
110
|
end
|
103
111
|
|
104
112
|
def test_reproduction_note
|
data/test/test_voyager_api.rb
CHANGED
@@ -1,4 +1,28 @@
|
|
1
1
|
require 'helper'
|
2
2
|
|
3
3
|
class TestVoyagerApi < MiniTest::Unit::TestCase
|
4
|
+
|
5
|
+
def setup
|
6
|
+
@conn = Voyager::Connection.new()
|
7
|
+
@bad_bib = 1
|
8
|
+
@good_bib = 123
|
9
|
+
end
|
10
|
+
|
11
|
+
def teardown
|
12
|
+
@conn.clean_session!
|
13
|
+
end
|
14
|
+
|
15
|
+
def test_bad_bib
|
16
|
+
e = assert_raises(RuntimeError) {
|
17
|
+
Voyager::Holdings::Collection.new_from_opac(@bad_bib, @conn)
|
18
|
+
}
|
19
|
+
assert_match e.message,
|
20
|
+
/com.endinfosys.voyager.holdingsinfo.HoldingsInfo.HoldingsInfoException/
|
21
|
+
end
|
22
|
+
|
23
|
+
def good_bad_bib
|
24
|
+
result = Voyager::Holdings::Collection.new_from_opac(@good_bib, @conn)
|
25
|
+
refute_nil result
|
26
|
+
end
|
27
|
+
|
4
28
|
end
|
@@ -19,10 +19,25 @@ class TestVoyagerConnection < MiniTest::Unit::TestCase
|
|
19
19
|
vc = Voyager::Connection.new(:http_client => hc, :cookie_path => cookie_file)
|
20
20
|
|
21
21
|
vc.request("http://www.google.com")
|
22
|
-
|
22
|
+
|
23
23
|
assert File.exists?(cookie_dir)
|
24
24
|
FileUtils.rm_rf(File.dirname(cookie_dir))
|
25
25
|
|
26
26
|
end
|
27
27
|
|
28
|
+
def test_new_voyager_connection
|
29
|
+
conn = Voyager::Connection.new()
|
30
|
+
refute_nil conn
|
31
|
+
assert_kind_of Voyager::Connection, conn
|
32
|
+
end
|
33
|
+
|
34
|
+
# http://example.com will return a valid HTML document
|
35
|
+
def test_bad_xml_in_voyager_connection
|
36
|
+
e = assert_raises(RuntimeError) {
|
37
|
+
Voyager::Holdings::Collection.new_from_opac(1, nil, "http://example.com")
|
38
|
+
}
|
39
|
+
assert_match e.message, /invalid xml/i
|
40
|
+
end
|
41
|
+
|
42
|
+
|
28
43
|
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: voyager_api
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.3.
|
4
|
+
version: 0.3.8
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -10,11 +10,11 @@ authors:
|
|
10
10
|
autorequire:
|
11
11
|
bindir: bin
|
12
12
|
cert_chain: []
|
13
|
-
date: 2013-07-
|
13
|
+
date: 2013-07-31 00:00:00.000000000Z
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|
16
16
|
name: activesupport
|
17
|
-
requirement: &
|
17
|
+
requirement: &2153298640 !ruby/object:Gem::Requirement
|
18
18
|
none: false
|
19
19
|
requirements:
|
20
20
|
- - ! '>='
|
@@ -22,10 +22,10 @@ dependencies:
|
|
22
22
|
version: '0'
|
23
23
|
type: :runtime
|
24
24
|
prerelease: false
|
25
|
-
version_requirements: *
|
25
|
+
version_requirements: *2153298640
|
26
26
|
- !ruby/object:Gem::Dependency
|
27
27
|
name: i18n
|
28
|
-
requirement: &
|
28
|
+
requirement: &2153298120 !ruby/object:Gem::Requirement
|
29
29
|
none: false
|
30
30
|
requirements:
|
31
31
|
- - ! '>='
|
@@ -33,10 +33,10 @@ dependencies:
|
|
33
33
|
version: '0'
|
34
34
|
type: :runtime
|
35
35
|
prerelease: false
|
36
|
-
version_requirements: *
|
36
|
+
version_requirements: *2153298120
|
37
37
|
- !ruby/object:Gem::Dependency
|
38
38
|
name: httpclient
|
39
|
-
requirement: &
|
39
|
+
requirement: &2153297480 !ruby/object:Gem::Requirement
|
40
40
|
none: false
|
41
41
|
requirements:
|
42
42
|
- - ! '>='
|
@@ -44,10 +44,10 @@ dependencies:
|
|
44
44
|
version: '0'
|
45
45
|
type: :runtime
|
46
46
|
prerelease: false
|
47
|
-
version_requirements: *
|
47
|
+
version_requirements: *2153297480
|
48
48
|
- !ruby/object:Gem::Dependency
|
49
49
|
name: nokogiri
|
50
|
-
requirement: &
|
50
|
+
requirement: &2153296640 !ruby/object:Gem::Requirement
|
51
51
|
none: false
|
52
52
|
requirements:
|
53
53
|
- - ! '>='
|
@@ -55,10 +55,10 @@ dependencies:
|
|
55
55
|
version: '0'
|
56
56
|
type: :runtime
|
57
57
|
prerelease: false
|
58
|
-
version_requirements: *
|
58
|
+
version_requirements: *2153296640
|
59
59
|
- !ruby/object:Gem::Dependency
|
60
60
|
name: minitest
|
61
|
-
requirement: &
|
61
|
+
requirement: &2153296060 !ruby/object:Gem::Requirement
|
62
62
|
none: false
|
63
63
|
requirements:
|
64
64
|
- - ! '>='
|
@@ -66,10 +66,10 @@ dependencies:
|
|
66
66
|
version: '0'
|
67
67
|
type: :development
|
68
68
|
prerelease: false
|
69
|
-
version_requirements: *
|
69
|
+
version_requirements: *2153296060
|
70
70
|
- !ruby/object:Gem::Dependency
|
71
71
|
name: bundler
|
72
|
-
requirement: &
|
72
|
+
requirement: &2153203400 !ruby/object:Gem::Requirement
|
73
73
|
none: false
|
74
74
|
requirements:
|
75
75
|
- - ~>
|
@@ -77,10 +77,10 @@ dependencies:
|
|
77
77
|
version: 1.0.0
|
78
78
|
type: :development
|
79
79
|
prerelease: false
|
80
|
-
version_requirements: *
|
80
|
+
version_requirements: *2153203400
|
81
81
|
- !ruby/object:Gem::Dependency
|
82
82
|
name: jeweler
|
83
|
-
requirement: &
|
83
|
+
requirement: &2153202720 !ruby/object:Gem::Requirement
|
84
84
|
none: false
|
85
85
|
requirements:
|
86
86
|
- - ~>
|
@@ -88,10 +88,10 @@ dependencies:
|
|
88
88
|
version: 1.6.4
|
89
89
|
type: :development
|
90
90
|
prerelease: false
|
91
|
-
version_requirements: *
|
91
|
+
version_requirements: *2153202720
|
92
92
|
- !ruby/object:Gem::Dependency
|
93
93
|
name: rcov
|
94
|
-
requirement: &
|
94
|
+
requirement: &2153201860 !ruby/object:Gem::Requirement
|
95
95
|
none: false
|
96
96
|
requirements:
|
97
97
|
- - ! '>='
|
@@ -99,10 +99,10 @@ dependencies:
|
|
99
99
|
version: '0'
|
100
100
|
type: :development
|
101
101
|
prerelease: false
|
102
|
-
version_requirements: *
|
102
|
+
version_requirements: *2153201860
|
103
103
|
- !ruby/object:Gem::Dependency
|
104
104
|
name: guard-minitest
|
105
|
-
requirement: &
|
105
|
+
requirement: &2153201120 !ruby/object:Gem::Requirement
|
106
106
|
none: false
|
107
107
|
requirements:
|
108
108
|
- - ! '>='
|
@@ -110,10 +110,10 @@ dependencies:
|
|
110
110
|
version: '0'
|
111
111
|
type: :development
|
112
112
|
prerelease: false
|
113
|
-
version_requirements: *
|
113
|
+
version_requirements: *2153201120
|
114
114
|
- !ruby/object:Gem::Dependency
|
115
115
|
name: rb-fsevent
|
116
|
-
requirement: &
|
116
|
+
requirement: &2153199980 !ruby/object:Gem::Requirement
|
117
117
|
none: false
|
118
118
|
requirements:
|
119
119
|
- - ! '>='
|
@@ -121,10 +121,10 @@ dependencies:
|
|
121
121
|
version: '0'
|
122
122
|
type: :development
|
123
123
|
prerelease: false
|
124
|
-
version_requirements: *
|
124
|
+
version_requirements: *2153199980
|
125
125
|
- !ruby/object:Gem::Dependency
|
126
126
|
name: mocha
|
127
|
-
requirement: &
|
127
|
+
requirement: &2153199120 !ruby/object:Gem::Requirement
|
128
128
|
none: false
|
129
129
|
requirements:
|
130
130
|
- - ! '>='
|
@@ -132,10 +132,10 @@ dependencies:
|
|
132
132
|
version: '0'
|
133
133
|
type: :development
|
134
134
|
prerelease: false
|
135
|
-
version_requirements: *
|
135
|
+
version_requirements: *2153199120
|
136
136
|
- !ruby/object:Gem::Dependency
|
137
137
|
name: growl
|
138
|
-
requirement: &
|
138
|
+
requirement: &2153198400 !ruby/object:Gem::Requirement
|
139
139
|
none: false
|
140
140
|
requirements:
|
141
141
|
- - ! '>='
|
@@ -143,7 +143,7 @@ dependencies:
|
|
143
143
|
version: '0'
|
144
144
|
type: :development
|
145
145
|
prerelease: false
|
146
|
-
version_requirements: *
|
146
|
+
version_requirements: *2153198400
|
147
147
|
description: ! 'Middleware gem for Voyager 7 API calls, specificially holdings information '
|
148
148
|
email: github@jamesstuart.org
|
149
149
|
executables: []
|
@@ -177,6 +177,7 @@ files:
|
|
177
177
|
- test/fixtures/holdings_1052500.xml
|
178
178
|
- test/fixtures/holdings_1558940.xml
|
179
179
|
- test/fixtures/holdings_1717646.xml
|
180
|
+
- test/fixtures/holdings_2120018.xml
|
180
181
|
- test/fixtures/holdings_2606957.xml
|
181
182
|
- test/fixtures/holdings_289196.xml
|
182
183
|
- test/fixtures/holdings_299492.xml
|
@@ -208,6 +209,7 @@ files:
|
|
208
209
|
- test/fixtures/holdings_8889994.xml
|
209
210
|
- test/fixtures/holdings_8891001.xml
|
210
211
|
- test/fixtures/holdings_8891001_2.xml
|
212
|
+
- test/fixtures/holdings_8891001_3.xml
|
211
213
|
- test/fixtures/holdings_8918502.xml
|
212
214
|
- test/fixtures/holdings_9420109.xml
|
213
215
|
- test/fixtures/holdings_9421045.xml
|
@@ -238,7 +240,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
238
240
|
version: '0'
|
239
241
|
segments:
|
240
242
|
- 0
|
241
|
-
hash:
|
243
|
+
hash: 3233840626635347838
|
242
244
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
243
245
|
none: false
|
244
246
|
requirements:
|