voyager_api 0.3.7 → 0.3.8
Sign up to get free protection for your applications and to get access to all the features.
- 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:
|