umlaut 3.0.0alpha1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (293) hide show
  1. data/LICENSE +7 -0
  2. data/README.md +49 -0
  3. data/Rakefile +37 -0
  4. data/app/assets/images/error.gif +0 -0
  5. data/app/assets/images/export_bg_bot.gif +0 -0
  6. data/app/assets/images/export_bg_mid.gif +0 -0
  7. data/app/assets/images/export_bg_top.gif +0 -0
  8. data/app/assets/images/famfamfam/book_open.png +0 -0
  9. data/app/assets/images/famfamfam/cross.png +0 -0
  10. data/app/assets/images/famfamfam/page_sound.gif +0 -0
  11. data/app/assets/images/famfamfam/page_text.gif +0 -0
  12. data/app/assets/images/famfamfam/page_up.gif +0 -0
  13. data/app/assets/images/famfamfam/page_white.png +0 -0
  14. data/app/assets/images/famfamfam/readme.html +1495 -0
  15. data/app/assets/images/famfamfam/tiny_cross.png +0 -0
  16. data/app/assets/images/frame_remove.gif +0 -0
  17. data/app/assets/images/ico_go.gif +0 -0
  18. data/app/assets/images/jhu_findit.gif +0 -0
  19. data/app/assets/images/list_closed.png +0 -0
  20. data/app/assets/images/list_open.png +0 -0
  21. data/app/assets/images/more_info.gif +0 -0
  22. data/app/assets/images/rails.png +0 -0
  23. data/app/assets/images/request.gif +0 -0
  24. data/app/assets/images/spinner.gif +0 -0
  25. data/app/assets/javascripts/umlaut/ajax_windows.js +35 -0
  26. data/app/assets/javascripts/umlaut/ensure_window_size.js.erb +34 -0
  27. data/app/assets/javascripts/umlaut/expand_contract_toggle.js +25 -0
  28. data/app/assets/javascripts/umlaut/search_autocomplete.js +46 -0
  29. data/app/assets/javascripts/umlaut/simple_visible_toggle.js +8 -0
  30. data/app/assets/javascripts/umlaut/update_html.js +152 -0
  31. data/app/assets/javascripts/umlaut.js +17 -0
  32. data/app/assets/stylesheets/umlaut.css +857 -0
  33. data/app/controllers/application_controller.rb +14 -0
  34. data/app/controllers/export_email_controller.rb +123 -0
  35. data/app/controllers/js_helper_controller.rb +10 -0
  36. data/app/controllers/link_router_controller.rb +87 -0
  37. data/app/controllers/open_search_controller.rb +9 -0
  38. data/app/controllers/resolve_controller.rb +288 -0
  39. data/app/controllers/resource_controller.rb +83 -0
  40. data/app/controllers/search_controller.rb +328 -0
  41. data/app/controllers/search_methods/sfx3.rb +148 -0
  42. data/app/controllers/search_methods/sfx4.rb +257 -0
  43. data/app/controllers/search_methods/sfx_api.rb +47 -0
  44. data/app/controllers/store_controller.rb +64 -0
  45. data/app/controllers/umlaut/controller_behavior.rb +20 -0
  46. data/app/controllers/umlaut/controller_logic.rb +96 -0
  47. data/app/controllers/umlaut/error_handling.rb +48 -0
  48. data/app/controllers/umlaut_controller.rb +112 -0
  49. data/app/helpers/application_helper.rb +4 -0
  50. data/app/helpers/emailer_helper.rb +43 -0
  51. data/app/helpers/export_email_helper.rb +34 -0
  52. data/app/helpers/open_search_helper.rb +7 -0
  53. data/app/helpers/resolve_helper.rb +225 -0
  54. data/app/helpers/search_helper.rb +50 -0
  55. data/app/helpers/umlaut/footer_helper.rb +64 -0
  56. data/app/helpers/umlaut/helper.rb +62 -0
  57. data/app/helpers/umlaut/html_head_helper.rb +37 -0
  58. data/app/helpers/umlaut/url_generation.rb +77 -0
  59. data/app/mailers/emailer.rb +48 -0
  60. data/app/models/clickthrough.rb +2 -0
  61. data/app/models/collection.rb +259 -0
  62. data/app/models/crossref_lookup.rb +2 -0
  63. data/app/models/dispatched_service.rb +58 -0
  64. data/app/models/permalink.rb +29 -0
  65. data/app/models/referent.rb +473 -0
  66. data/app/models/referent_value.rb +14 -0
  67. data/app/models/request.rb +449 -0
  68. data/app/models/service_response.rb +179 -0
  69. data/app/models/service_store.rb +59 -0
  70. data/app/models/service_type_value.rb +58 -0
  71. data/app/models/service_wave.rb +150 -0
  72. data/app/models/sfx_db/az_additional_title.rb +11 -0
  73. data/app/models/sfx_db/az_letter_group.rb +11 -0
  74. data/app/models/sfx_db/az_title.rb +38 -0
  75. data/app/models/sfx_db/az_title_v2.rb +34 -0
  76. data/app/models/sfx_db/isbn.rb +12 -0
  77. data/app/models/sfx_db/issn.rb +12 -0
  78. data/app/models/sfx_db/object.rb +35 -0
  79. data/app/models/sfx_db/object_portfolio.rb +6 -0
  80. data/app/models/sfx_db/publisher.rb +10 -0
  81. data/app/models/sfx_db/sfx_db_base.rb +54 -0
  82. data/app/models/sfx_db/target.rb +9 -0
  83. data/app/models/sfx_db/target_service.rb +10 -0
  84. data/app/models/sfx_db/title.rb +10 -0
  85. data/app/models/sfx_db.rb +10 -0
  86. data/app/models/sfx_url.rb +35 -0
  87. data/app/views/emailer/citation.text.erb +28 -0
  88. data/app/views/emailer/short_citation.text.erb +8 -0
  89. data/app/views/export_email/_email.html.erb +25 -0
  90. data/app/views/export_email/_send_email.html.erb +3 -0
  91. data/app/views/export_email/_send_txt.html.erb +3 -0
  92. data/app/views/export_email/_txt.html.erb +62 -0
  93. data/app/views/export_email/email.html.erb +3 -0
  94. data/app/views/export_email/send_email.html.erb +1 -0
  95. data/app/views/export_email/send_txt.html.erb +1 -0
  96. data/app/views/export_email/txt.html.erb +3 -0
  97. data/app/views/js_helper/loader.erb.js +13 -0
  98. data/app/views/layouts/umlaut.html.erb +52 -0
  99. data/app/views/open_search/index.html.erb +9 -0
  100. data/app/views/resolve/_api_in_progress.xml.erb +21 -0
  101. data/app/views/resolve/_background_progress.html.erb +51 -0
  102. data/app/views/resolve/_background_updater.html.erb +38 -0
  103. data/app/views/resolve/_citation.html.erb +87 -0
  104. data/app/views/resolve/_coins.html.erb +1 -0
  105. data/app/views/resolve/_compact_citation.html.erb +33 -0
  106. data/app/views/resolve/_cover_image.html.erb +35 -0
  107. data/app/views/resolve/_fulltext.html.erb +55 -0
  108. data/app/views/resolve/_help.html.erb +17 -0
  109. data/app/views/resolve/_holding.html.erb +91 -0
  110. data/app/views/resolve/_related_items.html.erb +35 -0
  111. data/app/views/resolve/_search_inside.html.erb +62 -0
  112. data/app/views/resolve/_section_display.html.erb +49 -0
  113. data/app/views/resolve/_service_errors.html.erb +29 -0
  114. data/app/views/resolve/_standard_response_item.html.erb +89 -0
  115. data/app/views/resolve/api.xml.builder +72 -0
  116. data/app/views/resolve/background_status.html.erb +26 -0
  117. data/app/views/resolve/index.html.erb +73 -0
  118. data/app/views/resolve/partial_html_sections.xml.erb +30 -0
  119. data/app/views/search/_a_to_z.html.erb +6 -0
  120. data/app/views/search/_citation.html.erb +94 -0
  121. data/app/views/search/_pager.html.erb +60 -0
  122. data/app/views/search/books.html.erb +103 -0
  123. data/app/views/search/journal_search.html.erb +90 -0
  124. data/app/views/search/journals.html.erb +167 -0
  125. data/app/views/search/opensearch_description.rxml +10 -0
  126. data/app/views/testing/index.html.erb +1 -0
  127. data/app/views/umlaut/README +5 -0
  128. data/app/views/umlaut/error.html.erb +45 -0
  129. data/db/migrate/01_umlaut_init.rb +113 -0
  130. data/db/orig_fixed_data/service_type_values.yml +120 -0
  131. data/db/seeds.rb +7 -0
  132. data/lib/CronTab.rb +192 -0
  133. data/lib/aws_product_sign.rb +146 -0
  134. data/lib/exlibris/aleph/patron.rb +64 -0
  135. data/lib/exlibris/aleph/record.rb +54 -0
  136. data/lib/exlibris/aleph/rest_api.rb +29 -0
  137. data/lib/exlibris/primo/holding.rb +192 -0
  138. data/lib/exlibris/primo/rsrc.rb +17 -0
  139. data/lib/exlibris/primo/searcher.rb +276 -0
  140. data/lib/exlibris/primo/source/aleph.rb +46 -0
  141. data/lib/exlibris/primo/source/distribution/nyu_aleph.rb +323 -0
  142. data/lib/exlibris/primo/toc.rb +17 -0
  143. data/lib/exlibris/primo_ws.rb +140 -0
  144. data/lib/generators/templates/umlaut_services.yml +237 -0
  145. data/lib/generators/umlaut/asset_hooks_generator.rb +44 -0
  146. data/lib/generators/umlaut/install_generator.rb +110 -0
  147. data/lib/hip3/bib.rb +291 -0
  148. data/lib/hip3/bib_searcher.rb +302 -0
  149. data/lib/hip3/custom_field_lookup.rb +44 -0
  150. data/lib/hip3/holding.rb +50 -0
  151. data/lib/hip3/item.rb +65 -0
  152. data/lib/hip3/receipt.rb +7 -0
  153. data/lib/hip3/serial_copy.rb +82 -0
  154. data/lib/holding.rb +32 -0
  155. data/lib/marc_helper.rb +254 -0
  156. data/lib/metadata_helper.rb +312 -0
  157. data/lib/opensearch_feed.rb +398 -0
  158. data/lib/opensearch_query.rb +98 -0
  159. data/lib/referent_filter.rb +16 -0
  160. data/lib/referent_filters/dissertation_catch.rb +45 -0
  161. data/lib/section_renderer.rb +503 -0
  162. data/lib/service.rb +336 -0
  163. data/lib/service_adaptors/ajax_export.rb +37 -0
  164. data/lib/service_adaptors/amazon.rb +412 -0
  165. data/lib/service_adaptors/blacklight.rb +327 -0
  166. data/lib/service_adaptors/book_finder.rb +40 -0
  167. data/lib/service_adaptors/bx.rb +51 -0
  168. data/lib/service_adaptors/cover_thing.rb +73 -0
  169. data/lib/service_adaptors/elsevier_cover.rb +57 -0
  170. data/lib/service_adaptors/email_export.rb +10 -0
  171. data/lib/service_adaptors/ezproxy.rb +171 -0
  172. data/lib/service_adaptors/google_book_search.rb +442 -0
  173. data/lib/service_adaptors/gpo.rb +124 -0
  174. data/lib/service_adaptors/hathi_trust.rb +308 -0
  175. data/lib/service_adaptors/hip3_service.rb +150 -0
  176. data/lib/service_adaptors/hip_holding_search.rb +237 -0
  177. data/lib/service_adaptors/internet_archive.rb +488 -0
  178. data/lib/service_adaptors/isbn_db.rb +86 -0
  179. data/lib/service_adaptors/isi.rb +258 -0
  180. data/lib/service_adaptors/jcr.rb +146 -0
  181. data/lib/service_adaptors/opac.rb +351 -0
  182. data/lib/service_adaptors/open_library.rb +316 -0
  183. data/lib/service_adaptors/open_library_cover.rb +73 -0
  184. data/lib/service_adaptors/primo_service.rb +392 -0
  185. data/lib/service_adaptors/primo_source.rb +78 -0
  186. data/lib/service_adaptors/pubmed.rb +133 -0
  187. data/lib/service_adaptors/request_to_fixture.rb +68 -0
  188. data/lib/service_adaptors/scopus.rb +295 -0
  189. data/lib/service_adaptors/sfx-new.rb +557 -0
  190. data/lib/service_adaptors/sfx.rb +566 -0
  191. data/lib/service_adaptors/sfx_backchannel_record.rb +69 -0
  192. data/lib/service_adaptors/txt_holding_export.rb +32 -0
  193. data/lib/service_adaptors/ulrichs_cover.rb +57 -0
  194. data/lib/service_adaptors/ulrichs_link.rb +47 -0
  195. data/lib/service_adaptors/worldcat.rb +116 -0
  196. data/lib/service_adaptors/worldcat_identities.rb +591 -0
  197. data/lib/tasks/umlaut.rake +134 -0
  198. data/lib/umlaut/default_configuration.rb +5 -0
  199. data/lib/umlaut/routes.rb +136 -0
  200. data/lib/umlaut/version.rb +3 -0
  201. data/lib/umlaut.rb +37 -0
  202. data/lib/umlaut_configurable.rb +343 -0
  203. data/lib/umlaut_http.rb +100 -0
  204. data/lib/xml_schema_helper.rb +109 -0
  205. data/test/dummy/Rakefile +7 -0
  206. data/test/dummy/app/assets/javascripts/application.js +13 -0
  207. data/test/dummy/app/assets/stylesheets/application.css +15 -0
  208. data/test/dummy/app/controllers/application_controller.rb +3 -0
  209. data/test/dummy/app/controllers/umlaut_controller.rb +112 -0
  210. data/test/dummy/app/helpers/application_helper.rb +2 -0
  211. data/test/dummy/app/views/layouts/application.html.erb +14 -0
  212. data/test/dummy/config/application.rb +45 -0
  213. data/test/dummy/config/boot.rb +10 -0
  214. data/test/dummy/config/database-jhu.yml +44 -0
  215. data/test/dummy/config/database.yml +25 -0
  216. data/test/dummy/config/environment.rb +5 -0
  217. data/test/dummy/config/environments/development.rb +34 -0
  218. data/test/dummy/config/environments/production.rb +60 -0
  219. data/test/dummy/config/environments/test.rb +39 -0
  220. data/test/dummy/config/initializers/backtrace_silencers.rb +7 -0
  221. data/test/dummy/config/initializers/inflections.rb +10 -0
  222. data/test/dummy/config/initializers/mime_types.rb +5 -0
  223. data/test/dummy/config/initializers/secret_token.rb +7 -0
  224. data/test/dummy/config/initializers/session_store.rb +8 -0
  225. data/test/dummy/config/initializers/wrap_parameters.rb +14 -0
  226. data/test/dummy/config/locales/en.yml +5 -0
  227. data/test/dummy/config/routes.rb +61 -0
  228. data/test/dummy/config/umlaut_services.yml +237 -0
  229. data/test/dummy/config.ru +4 -0
  230. data/test/dummy/db/migrate/20111228211210_umlaut_init.rb +113 -0
  231. data/test/dummy/db/schema.rb +124 -0
  232. data/test/dummy/log/development.log +12981 -0
  233. data/test/dummy/log/production.log +0 -0
  234. data/test/dummy/public/404.html +26 -0
  235. data/test/dummy/public/422.html +26 -0
  236. data/test/dummy/public/500.html +26 -0
  237. data/test/dummy/public/favicon.ico +0 -0
  238. data/test/dummy/script/rails +6 -0
  239. data/test/dummy/tmp/cache/assets/C5F/340/sprockets%2F99692920160b7a279b86a80415b79db7 +0 -0
  240. data/test/dummy/tmp/cache/assets/C70/4D0/sprockets%2F034ad2036e623081bd352800786dfe80 +0 -0
  241. data/test/dummy/tmp/cache/assets/C73/920/sprockets%2Fd371318f22900492fd180f17c5e2a504 +9268 -0
  242. data/test/dummy/tmp/cache/assets/C80/980/sprockets%2Fc94807409c1523d43e18d25f35d93c41 +0 -0
  243. data/test/dummy/tmp/cache/assets/C8F/780/sprockets%2Fe47e28558116fb5f8038754e60d1961d +11769 -0
  244. data/test/dummy/tmp/cache/assets/CAA/EB0/sprockets%2F1d179210e8b76f1ea63c802688a015e4 +9271 -0
  245. data/test/dummy/tmp/cache/assets/CBB/9C0/sprockets%2F706f28923fb754cad04b9107c89986a1 +0 -0
  246. data/test/dummy/tmp/cache/assets/CBF/B60/sprockets%2F08ca89671549936265dcb673bf02e36f +0 -0
  247. data/test/dummy/tmp/cache/assets/CC9/9F0/sprockets%2F306166316e2cafd13c15e62b51a2339d +0 -0
  248. data/test/dummy/tmp/cache/assets/CF6/F20/sprockets%2F5b2ffa1103079dfd555197838f87a99f +0 -0
  249. data/test/dummy/tmp/cache/assets/CF7/2B0/sprockets%2F25a7c73655bd3598173b39d9f98bcd46 +862 -0
  250. data/test/dummy/tmp/cache/assets/CFE/080/sprockets%2F37fe9f4255baddbd549a659914929398 +0 -0
  251. data/test/dummy/tmp/cache/assets/D22/060/sprockets%2F9aec77b768e91a802d284271c58e2f7e +21357 -0
  252. data/test/dummy/tmp/cache/assets/D32/A10/sprockets%2F13fe41fee1fe35b49d145bcc06610705 +0 -0
  253. data/test/dummy/tmp/cache/assets/D33/6D0/sprockets%2F500129c57f1146e556ec3aacd6cd38c1 +0 -0
  254. data/test/dummy/tmp/cache/assets/D33/FD0/sprockets%2F2ba0b4e6334a77b923e5f770381bb2bf +0 -0
  255. data/test/dummy/tmp/cache/assets/D42/C20/sprockets%2Fbcf14e437b1582bf93b77670acf8e090 +21353 -0
  256. data/test/dummy/tmp/cache/assets/D50/A30/sprockets%2F7d8b294ac433db5d056538f8cf7c66b9 +0 -0
  257. data/test/dummy/tmp/cache/assets/D54/ED0/sprockets%2F71c9fa01091d432b131da3bb73faf3d4 +872 -0
  258. data/test/dummy/tmp/cache/assets/D65/590/sprockets%2Fc1bb92fc3406a126b7dd302edc96d629 +0 -0
  259. data/test/dummy/tmp/cache/assets/D71/6B0/sprockets%2Fde558b71b494cf09b1bf055c8dff0353 +0 -0
  260. data/test/dummy/tmp/cache/assets/D72/610/sprockets%2Fa8c708eeb30ef93de34d755d4f45d023 +859 -0
  261. data/test/dummy/tmp/cache/assets/D76/AD0/sprockets%2Fe2158cde93188cf5ab6457bc6d6602ec +0 -0
  262. data/test/dummy/tmp/cache/assets/D7A/E40/sprockets%2F9622ffcc499a57627cd1bb18fe31b8e4 +11772 -0
  263. data/test/dummy/tmp/cache/assets/D84/210/sprockets%2Fabd0103ccec2b428ac62c94e4c40b384 +0 -0
  264. data/test/dummy/tmp/cache/assets/D9B/770/sprockets%2F8aacf02eb7dbb0949704b28f27b87e0b +0 -0
  265. data/test/dummy/tmp/cache/assets/DA6/A80/sprockets%2F92e26d8e58d5bcc8b8f6c25d1b05b9c1 +0 -0
  266. data/test/dummy/tmp/cache/assets/DE8/790/sprockets%2Fd1333bde2b9aafcc712d11dd09ab35d8 +0 -0
  267. data/test/dummy/tmp/cache/assets/DF7/F30/sprockets%2F7bc16c4109b17fabe29f8ddbbf732d1c +374 -0
  268. data/test/dummy/tmp/cache/assets/E03/570/sprockets%2F493bdc0ac14cd4f57fdfe4253f992bde +0 -0
  269. data/test/dummy/tmp/cache/assets/E04/890/sprockets%2F2f5173deea6c795b8fdde723bb4b63af +0 -0
  270. data/test/dummy/tmp/cache/assets/E0B/4B0/sprockets%2F7988df51a61c81ce6ede4a2d4c8cce4f +377 -0
  271. data/test/dummy/tmp/cache/assets/E5F/960/sprockets%2Fdc007b6cad5c7ef08e33ec28cfff0ef6 +0 -0
  272. data/test/fixtures/dispatched_services.yml +5 -0
  273. data/test/fixtures/permalinks.yml +5 -0
  274. data/test/fixtures/referent_values.yml +1734 -0
  275. data/test/fixtures/referents.yml +156 -0
  276. data/test/fixtures/requests.yml +284 -0
  277. data/test/fixtures/service_responses.yml +5 -0
  278. data/test/fixtures/sfx_urls.yml +4 -0
  279. data/test/performance/browsing_test.rb +9 -0
  280. data/test/test_helper.rb +10 -0
  281. data/test/umlaut_test.rb +7 -0
  282. data/test/unit/aleph_patron_test.rb +39 -0
  283. data/test/unit/aleph_record_benchmarks.rb +28 -0
  284. data/test/unit/aleph_record_test.rb +30 -0
  285. data/test/unit/aws_product_sign_test.rb +93 -0
  286. data/test/unit/collection_test.rb +76 -0
  287. data/test/unit/google_book_search_test.rb +101 -0
  288. data/test/unit/primo_searcher_test.rb +403 -0
  289. data/test/unit/primo_service_test.rb +939 -0
  290. data/test/unit/primo_ws_test.rb +131 -0
  291. data/test/unit/service_response_test.rb +9 -0
  292. data/test/unit/service_test.rb +33 -0
  293. metadata +580 -0
@@ -0,0 +1,131 @@
1
+ require File.dirname(__FILE__) + '/../test_helper'
2
+
3
+ class PrimoWSTest < ActiveSupport::TestCase
4
+
5
+ def setup
6
+ @primo_definition = YAML.load( %{
7
+ type: PrimoService
8
+ priority: 2 # After SFX, to get SFX metadata enhancement
9
+ status: active
10
+ base_url: http://bobcatdev.library.nyu.edu
11
+ vid: NYU
12
+ institution: NYU
13
+ holding_search_institution: NYU
14
+ holding_search_text: Search for this title in BobCat.
15
+ suppress_holdings: [ !ruby/regexp '/\$\$LBWEB/', !ruby/regexp '/\$\$LNWEB/', !ruby/regexp '/\$\$LTWEB/', !ruby/regexp '/\$\$LWEB/', !ruby/regexp '/\$\$1Restricted Internet Resources/' ]
16
+ ez_proxy: !ruby/regexp '/https\:\/\/ezproxy\.library\.nyu\.edu\/login\?url=/'
17
+ service_types:
18
+ - primo_source
19
+ - holding_search
20
+ - fulltext
21
+ - table_of_contents
22
+ - referent_enhance
23
+ - cover_image
24
+ })
25
+
26
+ @base_url = @primo_definition["base_url"]
27
+ @bogus_404_url = "http://library.nyu.edu/bogus"
28
+ @bogus_200_url = "http://library.nyu.edu"
29
+ @primo_test_doc_id = "nyu_aleph000062856"
30
+ @primo_invalid_doc_id = "thisIsNotAValidDocId"
31
+ @primo_test_problem_doc_id = "nyu_aleph000509288"
32
+ @isbn_search_params = {:isbn => "0143039008"}
33
+ @issn_search_params = {:issn => "0090-5720"}
34
+ @title_search_params = {:title => "Travels with My Aunt"}
35
+ @author_search_params = {:author => "Graham Greene"}
36
+ @title_author_genre_search_params = {:title => "Travels with My Aunt", :author => "Graham Greene", :genre => "Book"}
37
+ end
38
+
39
+ def test_primo_ws_benchmarks
40
+ Benchmark.bmbm do |results|
41
+ results.report("PrimoWS::Get Record:") {
42
+ (1..10).each {
43
+ get_record = Exlibris::PrimoWS::GetRecord.new(@primo_test_doc_id, @base_url)
44
+ }
45
+ }
46
+ results.report("PrimoWS::SearchBrief by ISBN:") {
47
+ (1..10).each {
48
+ get_record = Exlibris::PrimoWS::SearchBrief.new(@isbn_search_params, @base_url)
49
+ }
50
+ }
51
+ results.report("PrimoWS::SearchBrief by title:") {
52
+ (1..10).each {
53
+ get_record = Exlibris::PrimoWS::SearchBrief.new(@title_search_params, @base_url)
54
+ }
55
+ }
56
+ end
57
+ end
58
+ def test_bogus_response
59
+ assert_raise(SOAP::HTTPStreamError) {
60
+ ws = Exlibris::PrimoWS::GetRecord.new(@primo_test_doc_id, @bogus_404_url)
61
+ }
62
+ assert_raise(SOAP::HTTPStreamError) {
63
+ ws = Exlibris::PrimoWS::GetRecord.new(@primo_test_doc_id, @bogus_200_url)
64
+ }
65
+ end
66
+
67
+ # Test GetRecord for a single Primo document.
68
+ def test_get_record
69
+ ws = Exlibris::PrimoWS::GetRecord.new(@primo_test_doc_id, @base_url)
70
+ assert_not_nil(ws, "#{ws.class} returned nil when instantiated.")
71
+ assert_instance_of( Hpricot::Doc, ws.response, "#{ws.class} response is an unexpected object: #{ws.response.class}")
72
+ assert_equal([], ws.error, "#{ws.class} encountered errors: #{ws.error}")
73
+ assert_equal(@primo_test_doc_id, ws.response.at("//control/recordid").inner_text, "#{ws.class} returned an unexpected record: #{ws.response.to_original_html}")
74
+ end
75
+
76
+ def test_get_genre_discrepancy
77
+ ws = Exlibris::PrimoWS::GetRecord.new(@primo_test_problem_doc_id, @base_url)
78
+ assert_not_nil(ws, "#{ws.class} returned nil when instantiated.")
79
+ assert_instance_of( Hpricot::Doc, ws.response, "#{ws.class} response is an unexpected object: #{ws.response.class}")
80
+ assert_equal([], ws.error, "#{ws.class} encountered errors: #{ws.error}")
81
+ assert_equal(@primo_test_problem_doc_id, ws.response.at("//control/recordid").inner_text, "#{ws.class} returned an unexpected record: #{ws.response.to_original_html}")
82
+ assert_not_nil(ws.response.at("//display/availlibrary").inner_text, "#{ws.class} returned an unexpected record: #{ws.response.to_original_html}")
83
+ end
84
+
85
+ # Test GetRecord with invalid Primo doc id.
86
+ def test_get_bogus_record
87
+ assert_raise(RuntimeError) {
88
+ ws = Exlibris::PrimoWS::GetRecord.new(@primo_invalid_doc_id, @base_url)
89
+ }
90
+ end
91
+
92
+ # Test SearchBrief by isbn.
93
+ def test_isbn_search
94
+ ws = Exlibris::PrimoWS::SearchBrief.new(@isbn_search_params, @base_url)
95
+ assert_not_nil(ws, "#{ws.class} returned nil when instantiated.")
96
+ assert_instance_of( Hpricot::Doc, ws.response, "#{ws.class} response is an unexpected object: #{ws.response.class}")
97
+ assert_equal([], ws.error, "#{ws.class} encountered errors: #{ws.error}")
98
+ end
99
+
100
+ # Test SearchBrief by issn.
101
+ def test_issn_search
102
+ ws = Exlibris::PrimoWS::SearchBrief.new(@issn_search_params, @base_url)
103
+ assert_not_nil(ws, "#{ws.class} returned nil when instantiated.")
104
+ assert_instance_of( Hpricot::Doc, ws.response, "#{ws.class} response is an unexpected object: #{ws.response.class}")
105
+ assert_equal([], ws.error, "#{ws.class} encountered errors: #{ws.error}")
106
+ end
107
+
108
+ # Test SearchBrief by title.
109
+ def test_title_search
110
+ ws = Exlibris::PrimoWS::SearchBrief.new(@title_search_params, @base_url)
111
+ assert_not_nil(ws, "#{ws.class} returned nil when instantiated.")
112
+ assert_instance_of( Hpricot::Doc, ws.response, "#{ws.class} response is an unexpected object: #{ws.response.class}")
113
+ assert_equal([], ws.error, "#{ws.class} encountered errors: #{ws.error}")
114
+ end
115
+
116
+ # Test SearchBrief by author.
117
+ def test_author_search
118
+ ws = Exlibris::PrimoWS::SearchBrief.new(@author_search_params, @base_url)
119
+ assert_not_nil(ws, "#{ws.class} returned nil when instantiated.")
120
+ assert_instance_of( Hpricot::Doc, ws.response, "#{ws.class} response is an unexpected object: #{ws.response.class}")
121
+ assert_equal([], ws.error, "#{ws.class} encountered errors: #{ws.error}")
122
+ end
123
+
124
+ # Test SearchBrief by title/author/genre.
125
+ def test_title_author_genre_search
126
+ ws = Exlibris::PrimoWS::SearchBrief.new(@title_author_genre_search_params, @base_url)
127
+ assert_not_nil(ws, "#{ws.class} returned nil when instantiated.")
128
+ assert_instance_of( Hpricot::Doc, ws.response, "#{ws.class} response is an unexpected object: #{ws.response.class}")
129
+ assert_equal([], ws.error, "#{ws.class} encountered errors: #{ws.error}")
130
+ end
131
+ end
@@ -0,0 +1,9 @@
1
+ require File.dirname(__FILE__) + '/../test_helper'
2
+
3
+ class ServiceResponseTest < Test::Unit::TestCase
4
+
5
+ # Replace this with your real tests.
6
+ def test_truth
7
+ assert true
8
+ end
9
+ end
@@ -0,0 +1,33 @@
1
+ require File.dirname(__FILE__) + '/../test_helper'
2
+
3
+ class ServiceTest < Test::Unit::TestCase
4
+
5
+ # A service that does nothing!
6
+ class DummyService < Service
7
+ def handle(request)
8
+ return request.dispatched(self, true)
9
+ end
10
+ end
11
+
12
+ def setup
13
+ @dummy_config = {"priority" => 1}
14
+ @umlaut_request = requests(:simple_request)
15
+ end
16
+
17
+ def test_write_to_session
18
+
19
+
20
+ writer = DummyService.new( @dummy_config )
21
+ writer.request = @umlaut_request
22
+ writer.update_session( { :one => "first", :two => "second" })
23
+
24
+ reader = DummyService.new( @dummy_config )
25
+ reader.request = @umlaut_request
26
+ session = reader.session()
27
+
28
+ assert_equal "first", session[:one]
29
+ assert_equal "second", session[:two]
30
+
31
+ end
32
+
33
+ end
metadata ADDED
@@ -0,0 +1,580 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: umlaut
3
+ version: !ruby/object:Gem::Version
4
+ hash: -3702664386
5
+ prerelease: 5
6
+ segments:
7
+ - 3
8
+ - 0
9
+ - 0
10
+ - alpha
11
+ - 1
12
+ version: 3.0.0alpha1
13
+ platform: ruby
14
+ authors:
15
+ - Jonathan Rochkind, et al
16
+ autorequire:
17
+ bindir: bin
18
+ cert_chain: []
19
+
20
+ date: 2011-12-28 00:00:00 Z
21
+ dependencies:
22
+ - !ruby/object:Gem::Dependency
23
+ requirement: &id001 !ruby/object:Gem::Requirement
24
+ none: false
25
+ requirements:
26
+ - - ~>
27
+ - !ruby/object:Gem::Version
28
+ hash: 5
29
+ segments:
30
+ - 3
31
+ - 1
32
+ - 3
33
+ version: 3.1.3
34
+ version_requirements: *id001
35
+ prerelease: false
36
+ name: rails
37
+ type: :runtime
38
+ - !ruby/object:Gem::Dependency
39
+ requirement: &id002 !ruby/object:Gem::Requirement
40
+ none: false
41
+ requirements:
42
+ - - ">="
43
+ - !ruby/object:Gem::Version
44
+ hash: 3
45
+ segments:
46
+ - 0
47
+ version: "0"
48
+ version_requirements: *id002
49
+ prerelease: false
50
+ name: jquery-rails
51
+ type: :runtime
52
+ - !ruby/object:Gem::Dependency
53
+ requirement: &id003 !ruby/object:Gem::Requirement
54
+ none: false
55
+ requirements:
56
+ - - ">="
57
+ - !ruby/object:Gem::Version
58
+ hash: 3
59
+ segments:
60
+ - 0
61
+ version: "0"
62
+ version_requirements: *id003
63
+ prerelease: false
64
+ name: nokogiri
65
+ type: :runtime
66
+ - !ruby/object:Gem::Dependency
67
+ requirement: &id004 !ruby/object:Gem::Requirement
68
+ none: false
69
+ requirements:
70
+ - - ">="
71
+ - !ruby/object:Gem::Version
72
+ hash: 23
73
+ segments:
74
+ - 0
75
+ - 2
76
+ - 0
77
+ version: 0.2.0
78
+ version_requirements: *id004
79
+ prerelease: false
80
+ name: openurl
81
+ type: :runtime
82
+ - !ruby/object:Gem::Dependency
83
+ requirement: &id005 !ruby/object:Gem::Requirement
84
+ none: false
85
+ requirements:
86
+ - - ~>
87
+ - !ruby/object:Gem::Version
88
+ hash: 9
89
+ segments:
90
+ - 0
91
+ - 4
92
+ - 3
93
+ version: 0.4.3
94
+ version_requirements: *id005
95
+ prerelease: false
96
+ name: marc
97
+ type: :runtime
98
+ - !ruby/object:Gem::Dependency
99
+ requirement: &id006 !ruby/object:Gem::Requirement
100
+ none: false
101
+ requirements:
102
+ - - ">="
103
+ - !ruby/object:Gem::Version
104
+ hash: 3
105
+ segments:
106
+ - 0
107
+ version: "0"
108
+ version_requirements: *id006
109
+ prerelease: false
110
+ name: isbn
111
+ type: :runtime
112
+ - !ruby/object:Gem::Dependency
113
+ requirement: &id007 !ruby/object:Gem::Requirement
114
+ none: false
115
+ requirements:
116
+ - - ">="
117
+ - !ruby/object:Gem::Version
118
+ hash: 3
119
+ segments:
120
+ - 0
121
+ version: "0"
122
+ version_requirements: *id007
123
+ prerelease: false
124
+ name: htmlentities
125
+ type: :runtime
126
+ - !ruby/object:Gem::Dependency
127
+ requirement: &id008 !ruby/object:Gem::Requirement
128
+ none: false
129
+ requirements:
130
+ - - ">="
131
+ - !ruby/object:Gem::Version
132
+ hash: 3
133
+ segments:
134
+ - 0
135
+ version: "0"
136
+ version_requirements: *id008
137
+ prerelease: false
138
+ name: multi_json
139
+ type: :runtime
140
+ - !ruby/object:Gem::Dependency
141
+ requirement: &id009 !ruby/object:Gem::Requirement
142
+ none: false
143
+ requirements:
144
+ - - ~>
145
+ - !ruby/object:Gem::Version
146
+ hash: 15
147
+ segments:
148
+ - 0
149
+ - 2
150
+ version: "0.2"
151
+ version_requirements: *id009
152
+ prerelease: false
153
+ name: confstruct
154
+ type: :runtime
155
+ description:
156
+ email:
157
+ - umlaut-general@rubyforge.org
158
+ executables: []
159
+
160
+ extensions: []
161
+
162
+ extra_rdoc_files: []
163
+
164
+ files:
165
+ - app/mailers/emailer.rb
166
+ - app/controllers/search_methods/sfx4.rb
167
+ - app/controllers/search_methods/sfx3.rb
168
+ - app/controllers/search_methods/sfx_api.rb
169
+ - app/controllers/open_search_controller.rb
170
+ - app/controllers/store_controller.rb
171
+ - app/controllers/js_helper_controller.rb
172
+ - app/controllers/link_router_controller.rb
173
+ - app/controllers/export_email_controller.rb
174
+ - app/controllers/umlaut/error_handling.rb
175
+ - app/controllers/umlaut/controller_logic.rb
176
+ - app/controllers/umlaut/controller_behavior.rb
177
+ - app/controllers/resource_controller.rb
178
+ - app/controllers/resolve_controller.rb
179
+ - app/controllers/application_controller.rb
180
+ - app/controllers/umlaut_controller.rb
181
+ - app/controllers/search_controller.rb
182
+ - app/assets/images/jhu_findit.gif
183
+ - app/assets/images/export_bg_top.gif
184
+ - app/assets/images/export_bg_mid.gif
185
+ - app/assets/images/list_closed.png
186
+ - app/assets/images/export_bg_bot.gif
187
+ - app/assets/images/spinner.gif
188
+ - app/assets/images/ico_go.gif
189
+ - app/assets/images/rails.png
190
+ - app/assets/images/request.gif
191
+ - app/assets/images/famfamfam/book_open.png
192
+ - app/assets/images/famfamfam/page_up.gif
193
+ - app/assets/images/famfamfam/page_white.png
194
+ - app/assets/images/famfamfam/cross.png
195
+ - app/assets/images/famfamfam/readme.html
196
+ - app/assets/images/famfamfam/page_text.gif
197
+ - app/assets/images/famfamfam/page_sound.gif
198
+ - app/assets/images/famfamfam/tiny_cross.png
199
+ - app/assets/images/frame_remove.gif
200
+ - app/assets/images/list_open.png
201
+ - app/assets/images/more_info.gif
202
+ - app/assets/images/error.gif
203
+ - app/assets/javascripts/umlaut.js
204
+ - app/assets/javascripts/umlaut/update_html.js
205
+ - app/assets/javascripts/umlaut/ajax_windows.js
206
+ - app/assets/javascripts/umlaut/simple_visible_toggle.js
207
+ - app/assets/javascripts/umlaut/ensure_window_size.js.erb
208
+ - app/assets/javascripts/umlaut/expand_contract_toggle.js
209
+ - app/assets/javascripts/umlaut/search_autocomplete.js
210
+ - app/assets/stylesheets/umlaut.css
211
+ - app/models/sfx_url.rb
212
+ - app/models/crossref_lookup.rb
213
+ - app/models/service_wave.rb
214
+ - app/models/request.rb
215
+ - app/models/clickthrough.rb
216
+ - app/models/permalink.rb
217
+ - app/models/service_response.rb
218
+ - app/models/sfx_db/title.rb
219
+ - app/models/sfx_db/az_additional_title.rb
220
+ - app/models/sfx_db/sfx_db_base.rb
221
+ - app/models/sfx_db/isbn.rb
222
+ - app/models/sfx_db/target_service.rb
223
+ - app/models/sfx_db/target.rb
224
+ - app/models/sfx_db/az_title.rb
225
+ - app/models/sfx_db/object.rb
226
+ - app/models/sfx_db/az_letter_group.rb
227
+ - app/models/sfx_db/publisher.rb
228
+ - app/models/sfx_db/object_portfolio.rb
229
+ - app/models/sfx_db/issn.rb
230
+ - app/models/sfx_db/az_title_v2.rb
231
+ - app/models/referent_value.rb
232
+ - app/models/service_type_value.rb
233
+ - app/models/service_store.rb
234
+ - app/models/sfx_db.rb
235
+ - app/models/collection.rb
236
+ - app/models/dispatched_service.rb
237
+ - app/models/referent.rb
238
+ - app/views/emailer/short_citation.text.erb
239
+ - app/views/emailer/citation.text.erb
240
+ - app/views/js_helper/loader.erb.js
241
+ - app/views/search/_a_to_z.html.erb
242
+ - app/views/search/_pager.html.erb
243
+ - app/views/search/books.html.erb
244
+ - app/views/search/journal_search.html.erb
245
+ - app/views/search/journals.html.erb
246
+ - app/views/search/_citation.html.erb
247
+ - app/views/search/opensearch_description.rxml
248
+ - app/views/export_email/_email.html.erb
249
+ - app/views/export_email/send_email.html.erb
250
+ - app/views/export_email/_txt.html.erb
251
+ - app/views/export_email/email.html.erb
252
+ - app/views/export_email/_send_txt.html.erb
253
+ - app/views/export_email/txt.html.erb
254
+ - app/views/export_email/send_txt.html.erb
255
+ - app/views/export_email/_send_email.html.erb
256
+ - app/views/open_search/index.html.erb
257
+ - app/views/resolve/_background_updater.html.erb
258
+ - app/views/resolve/_help.html.erb
259
+ - app/views/resolve/_background_progress.html.erb
260
+ - app/views/resolve/_standard_response_item.html.erb
261
+ - app/views/resolve/_fulltext.html.erb
262
+ - app/views/resolve/index.html.erb
263
+ - app/views/resolve/_compact_citation.html.erb
264
+ - app/views/resolve/_related_items.html.erb
265
+ - app/views/resolve/api.xml.builder
266
+ - app/views/resolve/background_status.html.erb
267
+ - app/views/resolve/partial_html_sections.xml.erb
268
+ - app/views/resolve/_search_inside.html.erb
269
+ - app/views/resolve/_cover_image.html.erb
270
+ - app/views/resolve/_section_display.html.erb
271
+ - app/views/resolve/_holding.html.erb
272
+ - app/views/resolve/_service_errors.html.erb
273
+ - app/views/resolve/_citation.html.erb
274
+ - app/views/resolve/_coins.html.erb
275
+ - app/views/resolve/_api_in_progress.xml.erb
276
+ - app/views/testing/index.html.erb
277
+ - app/views/umlaut/error.html.erb
278
+ - app/views/umlaut/README
279
+ - app/views/layouts/umlaut.html.erb
280
+ - app/helpers/emailer_helper.rb
281
+ - app/helpers/application_helper.rb
282
+ - app/helpers/export_email_helper.rb
283
+ - app/helpers/umlaut/html_head_helper.rb
284
+ - app/helpers/umlaut/footer_helper.rb
285
+ - app/helpers/umlaut/url_generation.rb
286
+ - app/helpers/umlaut/helper.rb
287
+ - app/helpers/open_search_helper.rb
288
+ - app/helpers/resolve_helper.rb
289
+ - app/helpers/search_helper.rb
290
+ - db/seeds.rb
291
+ - db/migrate/01_umlaut_init.rb
292
+ - db/orig_fixed_data/service_type_values.yml
293
+ - lib/opensearch_query.rb
294
+ - lib/referent_filters/dissertation_catch.rb
295
+ - lib/referent_filter.rb
296
+ - lib/section_renderer.rb
297
+ - lib/hip3/receipt.rb
298
+ - lib/hip3/custom_field_lookup.rb
299
+ - lib/hip3/serial_copy.rb
300
+ - lib/hip3/bib_searcher.rb
301
+ - lib/hip3/holding.rb
302
+ - lib/hip3/item.rb
303
+ - lib/hip3/bib.rb
304
+ - lib/CronTab.rb
305
+ - lib/marc_helper.rb
306
+ - lib/opensearch_feed.rb
307
+ - lib/exlibris/primo_ws.rb
308
+ - lib/exlibris/primo/source/aleph.rb
309
+ - lib/exlibris/primo/source/distribution/nyu_aleph.rb
310
+ - lib/exlibris/primo/toc.rb
311
+ - lib/exlibris/primo/holding.rb
312
+ - lib/exlibris/primo/searcher.rb
313
+ - lib/exlibris/primo/rsrc.rb
314
+ - lib/exlibris/aleph/record.rb
315
+ - lib/exlibris/aleph/rest_api.rb
316
+ - lib/exlibris/aleph/patron.rb
317
+ - lib/holding.rb
318
+ - lib/umlaut_configurable.rb
319
+ - lib/umlaut/routes.rb
320
+ - lib/umlaut/version.rb
321
+ - lib/umlaut/default_configuration.rb
322
+ - lib/umlaut.rb
323
+ - lib/service.rb
324
+ - lib/service_adaptors/jcr.rb
325
+ - lib/service_adaptors/email_export.rb
326
+ - lib/service_adaptors/request_to_fixture.rb
327
+ - lib/service_adaptors/isi.rb
328
+ - lib/service_adaptors/primo_service.rb
329
+ - lib/service_adaptors/open_library.rb
330
+ - lib/service_adaptors/elsevier_cover.rb
331
+ - lib/service_adaptors/ulrichs_link.rb
332
+ - lib/service_adaptors/ulrichs_cover.rb
333
+ - lib/service_adaptors/scopus.rb
334
+ - lib/service_adaptors/sfx-new.rb
335
+ - lib/service_adaptors/hip3_service.rb
336
+ - lib/service_adaptors/amazon.rb
337
+ - lib/service_adaptors/worldcat_identities.rb
338
+ - lib/service_adaptors/primo_source.rb
339
+ - lib/service_adaptors/internet_archive.rb
340
+ - lib/service_adaptors/ezproxy.rb
341
+ - lib/service_adaptors/sfx.rb
342
+ - lib/service_adaptors/pubmed.rb
343
+ - lib/service_adaptors/ajax_export.rb
344
+ - lib/service_adaptors/blacklight.rb
345
+ - lib/service_adaptors/sfx_backchannel_record.rb
346
+ - lib/service_adaptors/bx.rb
347
+ - lib/service_adaptors/open_library_cover.rb
348
+ - lib/service_adaptors/worldcat.rb
349
+ - lib/service_adaptors/cover_thing.rb
350
+ - lib/service_adaptors/isbn_db.rb
351
+ - lib/service_adaptors/txt_holding_export.rb
352
+ - lib/service_adaptors/google_book_search.rb
353
+ - lib/service_adaptors/hip_holding_search.rb
354
+ - lib/service_adaptors/gpo.rb
355
+ - lib/service_adaptors/book_finder.rb
356
+ - lib/service_adaptors/hathi_trust.rb
357
+ - lib/service_adaptors/opac.rb
358
+ - lib/xml_schema_helper.rb
359
+ - lib/metadata_helper.rb
360
+ - lib/generators/templates/umlaut_services.yml
361
+ - lib/generators/umlaut/install_generator.rb
362
+ - lib/generators/umlaut/asset_hooks_generator.rb
363
+ - lib/umlaut_http.rb
364
+ - lib/aws_product_sign.rb
365
+ - lib/tasks/umlaut.rake
366
+ - LICENSE
367
+ - Rakefile
368
+ - README.md
369
+ - test/dummy/tmp/cache/assets/E0B/4B0/sprockets%2F7988df51a61c81ce6ede4a2d4c8cce4f
370
+ - test/dummy/tmp/cache/assets/C8F/780/sprockets%2Fe47e28558116fb5f8038754e60d1961d
371
+ - test/dummy/tmp/cache/assets/DA6/A80/sprockets%2F92e26d8e58d5bcc8b8f6c25d1b05b9c1
372
+ - test/dummy/tmp/cache/assets/DE8/790/sprockets%2Fd1333bde2b9aafcc712d11dd09ab35d8
373
+ - test/dummy/tmp/cache/assets/D9B/770/sprockets%2F8aacf02eb7dbb0949704b28f27b87e0b
374
+ - test/dummy/tmp/cache/assets/E5F/960/sprockets%2Fdc007b6cad5c7ef08e33ec28cfff0ef6
375
+ - test/dummy/tmp/cache/assets/D50/A30/sprockets%2F7d8b294ac433db5d056538f8cf7c66b9
376
+ - test/dummy/tmp/cache/assets/D32/A10/sprockets%2F13fe41fee1fe35b49d145bcc06610705
377
+ - test/dummy/tmp/cache/assets/E03/570/sprockets%2F493bdc0ac14cd4f57fdfe4253f992bde
378
+ - test/dummy/tmp/cache/assets/D42/C20/sprockets%2Fbcf14e437b1582bf93b77670acf8e090
379
+ - test/dummy/tmp/cache/assets/CFE/080/sprockets%2F37fe9f4255baddbd549a659914929398
380
+ - test/dummy/tmp/cache/assets/CF7/2B0/sprockets%2F25a7c73655bd3598173b39d9f98bcd46
381
+ - test/dummy/tmp/cache/assets/C80/980/sprockets%2Fc94807409c1523d43e18d25f35d93c41
382
+ - test/dummy/tmp/cache/assets/D84/210/sprockets%2Fabd0103ccec2b428ac62c94e4c40b384
383
+ - test/dummy/tmp/cache/assets/D7A/E40/sprockets%2F9622ffcc499a57627cd1bb18fe31b8e4
384
+ - test/dummy/tmp/cache/assets/CBB/9C0/sprockets%2F706f28923fb754cad04b9107c89986a1
385
+ - test/dummy/tmp/cache/assets/D71/6B0/sprockets%2Fde558b71b494cf09b1bf055c8dff0353
386
+ - test/dummy/tmp/cache/assets/DF7/F30/sprockets%2F7bc16c4109b17fabe29f8ddbbf732d1c
387
+ - test/dummy/tmp/cache/assets/CAA/EB0/sprockets%2F1d179210e8b76f1ea63c802688a015e4
388
+ - test/dummy/tmp/cache/assets/D54/ED0/sprockets%2F71c9fa01091d432b131da3bb73faf3d4
389
+ - test/dummy/tmp/cache/assets/CBF/B60/sprockets%2F08ca89671549936265dcb673bf02e36f
390
+ - test/dummy/tmp/cache/assets/CC9/9F0/sprockets%2F306166316e2cafd13c15e62b51a2339d
391
+ - test/dummy/tmp/cache/assets/D22/060/sprockets%2F9aec77b768e91a802d284271c58e2f7e
392
+ - test/dummy/tmp/cache/assets/C70/4D0/sprockets%2F034ad2036e623081bd352800786dfe80
393
+ - test/dummy/tmp/cache/assets/D76/AD0/sprockets%2Fe2158cde93188cf5ab6457bc6d6602ec
394
+ - test/dummy/tmp/cache/assets/D72/610/sprockets%2Fa8c708eeb30ef93de34d755d4f45d023
395
+ - test/dummy/tmp/cache/assets/CF6/F20/sprockets%2F5b2ffa1103079dfd555197838f87a99f
396
+ - test/dummy/tmp/cache/assets/C5F/340/sprockets%2F99692920160b7a279b86a80415b79db7
397
+ - test/dummy/tmp/cache/assets/C73/920/sprockets%2Fd371318f22900492fd180f17c5e2a504
398
+ - test/dummy/tmp/cache/assets/D33/FD0/sprockets%2F2ba0b4e6334a77b923e5f770381bb2bf
399
+ - test/dummy/tmp/cache/assets/D33/6D0/sprockets%2F500129c57f1146e556ec3aacd6cd38c1
400
+ - test/dummy/tmp/cache/assets/E04/890/sprockets%2F2f5173deea6c795b8fdde723bb4b63af
401
+ - test/dummy/tmp/cache/assets/D65/590/sprockets%2Fc1bb92fc3406a126b7dd302edc96d629
402
+ - test/dummy/app/controllers/application_controller.rb
403
+ - test/dummy/app/controllers/umlaut_controller.rb
404
+ - test/dummy/app/assets/javascripts/application.js
405
+ - test/dummy/app/assets/stylesheets/application.css
406
+ - test/dummy/app/views/layouts/application.html.erb
407
+ - test/dummy/app/helpers/application_helper.rb
408
+ - test/dummy/public/404.html
409
+ - test/dummy/public/422.html
410
+ - test/dummy/public/favicon.ico
411
+ - test/dummy/public/500.html
412
+ - test/dummy/config/environments/development.rb
413
+ - test/dummy/config/environments/production.rb
414
+ - test/dummy/config/environments/test.rb
415
+ - test/dummy/config/application.rb
416
+ - test/dummy/config/environment.rb
417
+ - test/dummy/config/database.yml
418
+ - test/dummy/config/umlaut_services.yml
419
+ - test/dummy/config/routes.rb
420
+ - test/dummy/config/locales/en.yml
421
+ - test/dummy/config/boot.rb
422
+ - test/dummy/config/initializers/inflections.rb
423
+ - test/dummy/config/initializers/backtrace_silencers.rb
424
+ - test/dummy/config/initializers/wrap_parameters.rb
425
+ - test/dummy/config/initializers/mime_types.rb
426
+ - test/dummy/config/initializers/session_store.rb
427
+ - test/dummy/config/initializers/secret_token.rb
428
+ - test/dummy/config/database-jhu.yml
429
+ - test/dummy/Rakefile
430
+ - test/dummy/script/rails
431
+ - test/dummy/config.ru
432
+ - test/dummy/db/schema.rb
433
+ - test/dummy/db/migrate/20111228211210_umlaut_init.rb
434
+ - test/dummy/log/production.log
435
+ - test/dummy/log/development.log
436
+ - test/performance/browsing_test.rb
437
+ - test/unit/aleph_record_benchmarks.rb
438
+ - test/unit/aws_product_sign_test.rb
439
+ - test/unit/service_test.rb
440
+ - test/unit/aleph_patron_test.rb
441
+ - test/unit/primo_ws_test.rb
442
+ - test/unit/primo_searcher_test.rb
443
+ - test/unit/aleph_record_test.rb
444
+ - test/unit/collection_test.rb
445
+ - test/unit/service_response_test.rb
446
+ - test/unit/google_book_search_test.rb
447
+ - test/unit/primo_service_test.rb
448
+ - test/umlaut_test.rb
449
+ - test/test_helper.rb
450
+ - test/fixtures/requests.yml
451
+ - test/fixtures/dispatched_services.yml
452
+ - test/fixtures/permalinks.yml
453
+ - test/fixtures/referents.yml
454
+ - test/fixtures/service_responses.yml
455
+ - test/fixtures/referent_values.yml
456
+ - test/fixtures/sfx_urls.yml
457
+ homepage: https://github.com/team-umlaut/umlaut
458
+ licenses: []
459
+
460
+ post_install_message:
461
+ rdoc_options: []
462
+
463
+ require_paths:
464
+ - lib
465
+ required_ruby_version: !ruby/object:Gem::Requirement
466
+ none: false
467
+ requirements:
468
+ - - ">="
469
+ - !ruby/object:Gem::Version
470
+ hash: 3
471
+ segments:
472
+ - 0
473
+ version: "0"
474
+ required_rubygems_version: !ruby/object:Gem::Requirement
475
+ none: false
476
+ requirements:
477
+ - - ">"
478
+ - !ruby/object:Gem::Version
479
+ hash: 25
480
+ segments:
481
+ - 1
482
+ - 3
483
+ - 1
484
+ version: 1.3.1
485
+ requirements: []
486
+
487
+ rubyforge_project:
488
+ rubygems_version: 1.8.12
489
+ signing_key:
490
+ specification_version: 3
491
+ summary: For Libraries, a just-in-time last-mile service aggregator, taking OpenURL input
492
+ test_files:
493
+ - test/dummy/tmp/cache/assets/E0B/4B0/sprockets%2F7988df51a61c81ce6ede4a2d4c8cce4f
494
+ - test/dummy/tmp/cache/assets/C8F/780/sprockets%2Fe47e28558116fb5f8038754e60d1961d
495
+ - test/dummy/tmp/cache/assets/DA6/A80/sprockets%2F92e26d8e58d5bcc8b8f6c25d1b05b9c1
496
+ - test/dummy/tmp/cache/assets/DE8/790/sprockets%2Fd1333bde2b9aafcc712d11dd09ab35d8
497
+ - test/dummy/tmp/cache/assets/D9B/770/sprockets%2F8aacf02eb7dbb0949704b28f27b87e0b
498
+ - test/dummy/tmp/cache/assets/E5F/960/sprockets%2Fdc007b6cad5c7ef08e33ec28cfff0ef6
499
+ - test/dummy/tmp/cache/assets/D50/A30/sprockets%2F7d8b294ac433db5d056538f8cf7c66b9
500
+ - test/dummy/tmp/cache/assets/D32/A10/sprockets%2F13fe41fee1fe35b49d145bcc06610705
501
+ - test/dummy/tmp/cache/assets/E03/570/sprockets%2F493bdc0ac14cd4f57fdfe4253f992bde
502
+ - test/dummy/tmp/cache/assets/D42/C20/sprockets%2Fbcf14e437b1582bf93b77670acf8e090
503
+ - test/dummy/tmp/cache/assets/CFE/080/sprockets%2F37fe9f4255baddbd549a659914929398
504
+ - test/dummy/tmp/cache/assets/CF7/2B0/sprockets%2F25a7c73655bd3598173b39d9f98bcd46
505
+ - test/dummy/tmp/cache/assets/C80/980/sprockets%2Fc94807409c1523d43e18d25f35d93c41
506
+ - test/dummy/tmp/cache/assets/D84/210/sprockets%2Fabd0103ccec2b428ac62c94e4c40b384
507
+ - test/dummy/tmp/cache/assets/D7A/E40/sprockets%2F9622ffcc499a57627cd1bb18fe31b8e4
508
+ - test/dummy/tmp/cache/assets/CBB/9C0/sprockets%2F706f28923fb754cad04b9107c89986a1
509
+ - test/dummy/tmp/cache/assets/D71/6B0/sprockets%2Fde558b71b494cf09b1bf055c8dff0353
510
+ - test/dummy/tmp/cache/assets/DF7/F30/sprockets%2F7bc16c4109b17fabe29f8ddbbf732d1c
511
+ - test/dummy/tmp/cache/assets/CAA/EB0/sprockets%2F1d179210e8b76f1ea63c802688a015e4
512
+ - test/dummy/tmp/cache/assets/D54/ED0/sprockets%2F71c9fa01091d432b131da3bb73faf3d4
513
+ - test/dummy/tmp/cache/assets/CBF/B60/sprockets%2F08ca89671549936265dcb673bf02e36f
514
+ - test/dummy/tmp/cache/assets/CC9/9F0/sprockets%2F306166316e2cafd13c15e62b51a2339d
515
+ - test/dummy/tmp/cache/assets/D22/060/sprockets%2F9aec77b768e91a802d284271c58e2f7e
516
+ - test/dummy/tmp/cache/assets/C70/4D0/sprockets%2F034ad2036e623081bd352800786dfe80
517
+ - test/dummy/tmp/cache/assets/D76/AD0/sprockets%2Fe2158cde93188cf5ab6457bc6d6602ec
518
+ - test/dummy/tmp/cache/assets/D72/610/sprockets%2Fa8c708eeb30ef93de34d755d4f45d023
519
+ - test/dummy/tmp/cache/assets/CF6/F20/sprockets%2F5b2ffa1103079dfd555197838f87a99f
520
+ - test/dummy/tmp/cache/assets/C5F/340/sprockets%2F99692920160b7a279b86a80415b79db7
521
+ - test/dummy/tmp/cache/assets/C73/920/sprockets%2Fd371318f22900492fd180f17c5e2a504
522
+ - test/dummy/tmp/cache/assets/D33/FD0/sprockets%2F2ba0b4e6334a77b923e5f770381bb2bf
523
+ - test/dummy/tmp/cache/assets/D33/6D0/sprockets%2F500129c57f1146e556ec3aacd6cd38c1
524
+ - test/dummy/tmp/cache/assets/E04/890/sprockets%2F2f5173deea6c795b8fdde723bb4b63af
525
+ - test/dummy/tmp/cache/assets/D65/590/sprockets%2Fc1bb92fc3406a126b7dd302edc96d629
526
+ - test/dummy/app/controllers/application_controller.rb
527
+ - test/dummy/app/controllers/umlaut_controller.rb
528
+ - test/dummy/app/assets/javascripts/application.js
529
+ - test/dummy/app/assets/stylesheets/application.css
530
+ - test/dummy/app/views/layouts/application.html.erb
531
+ - test/dummy/app/helpers/application_helper.rb
532
+ - test/dummy/public/404.html
533
+ - test/dummy/public/422.html
534
+ - test/dummy/public/favicon.ico
535
+ - test/dummy/public/500.html
536
+ - test/dummy/config/environments/development.rb
537
+ - test/dummy/config/environments/production.rb
538
+ - test/dummy/config/environments/test.rb
539
+ - test/dummy/config/application.rb
540
+ - test/dummy/config/environment.rb
541
+ - test/dummy/config/database.yml
542
+ - test/dummy/config/umlaut_services.yml
543
+ - test/dummy/config/routes.rb
544
+ - test/dummy/config/locales/en.yml
545
+ - test/dummy/config/boot.rb
546
+ - test/dummy/config/initializers/inflections.rb
547
+ - test/dummy/config/initializers/backtrace_silencers.rb
548
+ - test/dummy/config/initializers/wrap_parameters.rb
549
+ - test/dummy/config/initializers/mime_types.rb
550
+ - test/dummy/config/initializers/session_store.rb
551
+ - test/dummy/config/initializers/secret_token.rb
552
+ - test/dummy/config/database-jhu.yml
553
+ - test/dummy/Rakefile
554
+ - test/dummy/script/rails
555
+ - test/dummy/config.ru
556
+ - test/dummy/db/schema.rb
557
+ - test/dummy/db/migrate/20111228211210_umlaut_init.rb
558
+ - test/dummy/log/production.log
559
+ - test/dummy/log/development.log
560
+ - test/performance/browsing_test.rb
561
+ - test/unit/aleph_record_benchmarks.rb
562
+ - test/unit/aws_product_sign_test.rb
563
+ - test/unit/service_test.rb
564
+ - test/unit/aleph_patron_test.rb
565
+ - test/unit/primo_ws_test.rb
566
+ - test/unit/primo_searcher_test.rb
567
+ - test/unit/aleph_record_test.rb
568
+ - test/unit/collection_test.rb
569
+ - test/unit/service_response_test.rb
570
+ - test/unit/google_book_search_test.rb
571
+ - test/unit/primo_service_test.rb
572
+ - test/umlaut_test.rb
573
+ - test/test_helper.rb
574
+ - test/fixtures/requests.yml
575
+ - test/fixtures/dispatched_services.yml
576
+ - test/fixtures/permalinks.yml
577
+ - test/fixtures/referents.yml
578
+ - test/fixtures/service_responses.yml
579
+ - test/fixtures/referent_values.yml
580
+ - test/fixtures/sfx_urls.yml