exlibris-aleph 1.1.0 → 2.0.0

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.
Files changed (268) hide show
  1. data/README.md +199 -82
  2. data/Rakefile +8 -14
  3. data/lib/exlibris-aleph.rb +0 -3
  4. data/lib/exlibris/aleph/admin_library.rb +27 -0
  5. data/lib/exlibris/aleph/api/base.rb +27 -0
  6. data/lib/exlibris/aleph/api/client/base.rb +86 -0
  7. data/lib/exlibris/aleph/api/client/patron.rb +20 -0
  8. data/lib/exlibris/aleph/api/client/patron/address.rb +22 -0
  9. data/lib/exlibris/aleph/api/client/patron/record.rb +23 -0
  10. data/lib/exlibris/aleph/api/client/patron/record/item.rb +26 -0
  11. data/lib/exlibris/aleph/api/client/patron/record/item/create_hold.rb +31 -0
  12. data/lib/exlibris/aleph/api/client/patron/record/item/create_hold/parameters.rb +55 -0
  13. data/lib/exlibris/aleph/api/client/patron/record/item/hold.rb +29 -0
  14. data/lib/exlibris/aleph/api/client/patron/status.rb +22 -0
  15. data/lib/exlibris/aleph/api/client/record.rb +21 -0
  16. data/lib/exlibris/aleph/api/client/record/filters.rb +23 -0
  17. data/lib/exlibris/aleph/api/client/record/holding.rb +23 -0
  18. data/lib/exlibris/aleph/api/client/record/holdings.rb +23 -0
  19. data/lib/exlibris/aleph/api/client/record/item.rb +23 -0
  20. data/lib/exlibris/aleph/api/client/record/items.rb +23 -0
  21. data/lib/exlibris/aleph/api/reader/base.rb +15 -0
  22. data/lib/exlibris/aleph/api/reader/patron.rb +19 -0
  23. data/lib/exlibris/aleph/api/reader/patron/address.rb +90 -0
  24. data/lib/exlibris/aleph/api/reader/patron/record.rb +38 -0
  25. data/lib/exlibris/aleph/api/reader/patron/record/item.rb +77 -0
  26. data/lib/exlibris/aleph/api/reader/patron/record/item/create_hold.rb +33 -0
  27. data/lib/exlibris/aleph/api/reader/patron/record/item/hold.rb +56 -0
  28. data/lib/exlibris/aleph/api/reader/patron/status.rb +33 -0
  29. data/lib/exlibris/aleph/api/reader/record.rb +10 -0
  30. data/lib/exlibris/aleph/api/reader/record/item.rb +45 -0
  31. data/lib/exlibris/aleph/collection.rb +26 -0
  32. data/lib/exlibris/aleph/config.rb +17 -57
  33. data/lib/exlibris/aleph/holding.rb +59 -0
  34. data/lib/exlibris/aleph/holding/metadata.rb +28 -0
  35. data/lib/exlibris/aleph/holdings.rb +51 -0
  36. data/lib/exlibris/aleph/item.rb +138 -0
  37. data/lib/exlibris/aleph/item/call_number.rb +14 -0
  38. data/lib/exlibris/aleph/item/circulation_policy.rb +30 -0
  39. data/lib/exlibris/aleph/item/circulation_policy/display.rb +16 -0
  40. data/lib/exlibris/aleph/item/circulation_policy/identifier.rb +34 -0
  41. data/lib/exlibris/aleph/item/circulation_policy/privileges.rb +72 -0
  42. data/lib/exlibris/aleph/item/circulation_status.rb +31 -0
  43. data/lib/exlibris/aleph/item/display_mask.rb +19 -0
  44. data/lib/exlibris/aleph/item/opac_note.rb +17 -0
  45. data/lib/exlibris/aleph/item/processing_status.rb +23 -0
  46. data/lib/exlibris/aleph/item/queue.rb +32 -0
  47. data/lib/exlibris/aleph/item/status.rb +23 -0
  48. data/lib/exlibris/aleph/items.rb +51 -0
  49. data/lib/exlibris/aleph/metadata.rb +25 -0
  50. data/lib/exlibris/aleph/patron.rb +18 -82
  51. data/lib/exlibris/aleph/patron/address.rb +56 -0
  52. data/lib/exlibris/aleph/patron/circulation_policy.rb +26 -0
  53. data/lib/exlibris/aleph/patron/circulation_policy/identifier.rb +29 -0
  54. data/lib/exlibris/aleph/patron/circulation_policy/privileges.rb +56 -0
  55. data/lib/exlibris/aleph/patron/record.rb +39 -0
  56. data/lib/exlibris/aleph/patron/record/circulation_policy.rb +18 -0
  57. data/lib/exlibris/aleph/patron/record/circulation_policy/privileges.rb +42 -0
  58. data/lib/exlibris/aleph/patron/record/item.rb +63 -0
  59. data/lib/exlibris/aleph/patron/record/item/circulation_policy.rb +21 -0
  60. data/lib/exlibris/aleph/patron/record/item/circulation_policy/privileges.rb +39 -0
  61. data/lib/exlibris/aleph/patron/record/item/create_hold.rb +43 -0
  62. data/lib/exlibris/aleph/patron/record/item/hold.rb +41 -0
  63. data/lib/exlibris/aleph/patron/status.rb +19 -0
  64. data/lib/exlibris/aleph/pickup_location.rb +12 -0
  65. data/lib/exlibris/aleph/record.rb +14 -43
  66. data/lib/exlibris/aleph/record/metadata.rb +8 -0
  67. data/lib/exlibris/aleph/sub_library.rb +30 -0
  68. data/lib/exlibris/aleph/table/base.rb +22 -0
  69. data/lib/exlibris/aleph/table/collections.rb +17 -0
  70. data/lib/exlibris/aleph/table/item/circulation_policies.rb +65 -0
  71. data/lib/exlibris/aleph/table/item/display_masks.rb +19 -0
  72. data/lib/exlibris/aleph/table/patron/circulation_policies.rb +47 -0
  73. data/lib/exlibris/aleph/table/patron/statuses.rb +19 -0
  74. data/lib/exlibris/aleph/table/reader/base.rb +57 -0
  75. data/lib/exlibris/aleph/table/reader/collections.rb +35 -0
  76. data/lib/exlibris/aleph/table/reader/item_circulation_policies.rb +50 -0
  77. data/lib/exlibris/aleph/table/reader/item_display_masks.rb +19 -0
  78. data/lib/exlibris/aleph/table/reader/matcher/base.rb +30 -0
  79. data/lib/exlibris/aleph/table/reader/matcher/collections.rb +17 -0
  80. data/lib/exlibris/aleph/table/reader/matcher/item_circulation_policies.rb +17 -0
  81. data/lib/exlibris/aleph/table/reader/matcher/item_display_masks.rb +17 -0
  82. data/lib/exlibris/aleph/table/reader/matcher/patron_circulation_policies.rb +17 -0
  83. data/lib/exlibris/aleph/table/reader/matcher/patron_statuses.rb +17 -0
  84. data/lib/exlibris/aleph/table/reader/matcher/sub_libraries.rb +17 -0
  85. data/lib/exlibris/aleph/table/reader/patron_circulation_policies.rb +51 -0
  86. data/lib/exlibris/aleph/table/reader/patron_statuses.rb +19 -0
  87. data/lib/exlibris/aleph/table/reader/row/base.rb +25 -0
  88. data/lib/exlibris/aleph/table/reader/row/collections.rb +13 -0
  89. data/lib/exlibris/aleph/table/reader/row/item_circulation_policies.rb +17 -0
  90. data/lib/exlibris/aleph/table/reader/row/item_display_masks.rb +13 -0
  91. data/lib/exlibris/aleph/table/reader/row/patron_circulation_policies.rb +20 -0
  92. data/lib/exlibris/aleph/table/reader/row/patron_statuses.rb +13 -0
  93. data/lib/exlibris/aleph/table/reader/row/sub_libraries.rb +13 -0
  94. data/lib/exlibris/aleph/table/reader/sub_libraries.rb +32 -0
  95. data/lib/exlibris/aleph/table/sub_libraries.rb +11 -0
  96. data/lib/exlibris/aleph/tables_manager.rb +66 -0
  97. data/lib/exlibris/aleph/version.rb +1 -1
  98. data/spec/exlibris/aleph/admin_library_spec.rb +83 -0
  99. data/spec/exlibris/aleph/api/base_spec.rb +23 -0
  100. data/spec/exlibris/aleph/api/client/base_spec.rb +40 -0
  101. data/spec/exlibris/aleph/api/client/patron/address_spec.rb +40 -0
  102. data/spec/exlibris/aleph/api/client/patron/record/item/create_hold/parameters_spec.rb +101 -0
  103. data/spec/exlibris/aleph/api/client/patron/record/item/create_hold_spec.rb +102 -0
  104. data/spec/exlibris/aleph/api/client/patron/record/item/hold_spec.rb +89 -0
  105. data/spec/exlibris/aleph/api/client/patron/record/item_spec.rb +52 -0
  106. data/spec/exlibris/aleph/api/client/patron/record_spec.rb +45 -0
  107. data/spec/exlibris/aleph/api/client/patron/status_spec.rb +40 -0
  108. data/spec/exlibris/aleph/api/client/patron_spec.rb +38 -0
  109. data/spec/exlibris/aleph/api/client/record/filters_spec.rb +46 -0
  110. data/spec/exlibris/aleph/api/client/record/holding_spec.rb +41 -0
  111. data/spec/exlibris/aleph/api/client/record/holdings_spec.rb +46 -0
  112. data/spec/exlibris/aleph/api/client/record/item_spec.rb +41 -0
  113. data/spec/exlibris/aleph/api/client/record/items_spec.rb +46 -0
  114. data/spec/exlibris/aleph/api/client/record_spec.rb +43 -0
  115. data/spec/exlibris/aleph/api/reader/base_spec.rb +18 -0
  116. data/spec/exlibris/aleph/api/reader/patron/address_spec.rb +151 -0
  117. data/spec/exlibris/aleph/api/reader/patron/record/item/create_hold_spec.rb +65 -0
  118. data/spec/exlibris/aleph/api/reader/patron/record/item/hold_spec.rb +145 -0
  119. data/spec/exlibris/aleph/api/reader/patron/record/item_spec.rb +266 -0
  120. data/spec/exlibris/aleph/api/reader/patron/record_spec.rb +98 -0
  121. data/spec/exlibris/aleph/api/reader/patron/status_spec.rb +57 -0
  122. data/spec/exlibris/aleph/api/reader/patron_spec.rb +28 -0
  123. data/spec/exlibris/aleph/api/reader/record/item_spec.rb +178 -0
  124. data/spec/exlibris/aleph/collection_spec.rb +95 -0
  125. data/spec/exlibris/aleph/config_spec.rb +17 -0
  126. data/spec/exlibris/aleph/holding/metadata_spec.rb +57 -0
  127. data/spec/exlibris/aleph/holding_spec.rb +53 -0
  128. data/spec/exlibris/aleph/holdings_spec.rb +59 -0
  129. data/spec/exlibris/aleph/item/call_number_spec.rb +20 -0
  130. data/spec/exlibris/aleph/item/circulation_policy/display_spec.rb +33 -0
  131. data/spec/exlibris/aleph/item/circulation_policy/identifier_spec.rb +154 -0
  132. data/spec/exlibris/aleph/item/circulation_policy/privileges_spec.rb +183 -0
  133. data/spec/exlibris/aleph/item/circulation_policy_spec.rb +146 -0
  134. data/spec/exlibris/aleph/item/circulation_status_spec.rb +83 -0
  135. data/spec/exlibris/aleph/item/display_mask_spec.rb +72 -0
  136. data/spec/exlibris/aleph/item/opac_note_spec.rb +19 -0
  137. data/spec/exlibris/aleph/item/processing_status_spec.rb +75 -0
  138. data/spec/exlibris/aleph/item/queue_spec.rb +31 -0
  139. data/spec/exlibris/aleph/item/status_spec.rb +80 -0
  140. data/spec/exlibris/aleph/item_spec.rb +97 -0
  141. data/spec/exlibris/aleph/items_spec.rb +59 -0
  142. data/spec/exlibris/aleph/metadata_spec.rb +118 -0
  143. data/spec/exlibris/aleph/patron/address_spec.rb +68 -0
  144. data/spec/exlibris/aleph/patron/circulation_policy/identifier_spec.rb +115 -0
  145. data/spec/exlibris/aleph/patron/circulation_policy/privileges_spec.rb +128 -0
  146. data/spec/exlibris/aleph/patron/circulation_policy_spec.rb +119 -0
  147. data/spec/exlibris/aleph/patron/record/circulation_policy/privileges_spec.rb +88 -0
  148. data/spec/exlibris/aleph/patron/record/circulation_policy_spec.rb +37 -0
  149. data/spec/exlibris/aleph/patron/record/item/circulation_policy/privileges_spec.rb +76 -0
  150. data/spec/exlibris/aleph/patron/record/item/circulation_policy_spec.rb +52 -0
  151. data/spec/exlibris/aleph/patron/record/item/create_hold_spec.rb +49 -0
  152. data/spec/exlibris/aleph/patron/record/item/hold_spec.rb +41 -0
  153. data/spec/exlibris/aleph/patron/record/item_spec.rb +64 -0
  154. data/spec/exlibris/aleph/patron/record_spec.rb +30 -0
  155. data/spec/exlibris/aleph/patron/status_spec.rb +72 -0
  156. data/spec/exlibris/aleph/patron_spec.rb +28 -0
  157. data/spec/exlibris/aleph/pickup_location_spec.rb +19 -0
  158. data/spec/exlibris/aleph/record/metadata_spec.rb +120 -0
  159. data/spec/exlibris/aleph/record_spec.rb +44 -0
  160. data/spec/exlibris/aleph/sub_library_spec.rb +110 -0
  161. data/spec/exlibris/aleph/table/base_spec.rb +17 -0
  162. data/spec/exlibris/aleph/table/collections_spec.rb +24 -0
  163. data/spec/exlibris/aleph/table/item/circulation_policies_spec.rb +65 -0
  164. data/spec/exlibris/aleph/table/item/display_masks_spec.rb +26 -0
  165. data/spec/exlibris/aleph/table/patron/circulation_policies_spec.rb +47 -0
  166. data/spec/exlibris/aleph/table/patron/statuses_spec.rb +26 -0
  167. data/spec/exlibris/aleph/table/reader/base_spec.rb +28 -0
  168. data/spec/exlibris/aleph/table/reader/collections_spec.rb +33 -0
  169. data/spec/exlibris/aleph/table/reader/item_circulation_policies_spec.rb +33 -0
  170. data/spec/exlibris/aleph/table/reader/item_display_masks_spec.rb +27 -0
  171. data/spec/exlibris/aleph/table/reader/matcher/base_spec.rb +32 -0
  172. data/spec/exlibris/aleph/table/reader/matcher/collections_spec.rb +39 -0
  173. data/spec/exlibris/aleph/table/reader/matcher/item_circulation_policies_spec.rb +39 -0
  174. data/spec/exlibris/aleph/table/reader/matcher/item_display_masks_spec.rb +40 -0
  175. data/spec/exlibris/aleph/table/reader/matcher/patron_circulation_policies_spec.rb +40 -0
  176. data/spec/exlibris/aleph/table/reader/matcher/patron_statuses_spec.rb +40 -0
  177. data/spec/exlibris/aleph/table/reader/matcher/sub_libraries_spec.rb +40 -0
  178. data/spec/exlibris/aleph/table/reader/patron_circulation_policies_spec.rb +27 -0
  179. data/spec/exlibris/aleph/table/reader/patron_statuses_spec.rb +27 -0
  180. data/spec/exlibris/aleph/table/reader/row/base_spec.rb +20 -0
  181. data/spec/exlibris/aleph/table/reader/row/collections_spec.rb +37 -0
  182. data/spec/exlibris/aleph/table/reader/row/item_circulation_policies_spec.rb +89 -0
  183. data/spec/exlibris/aleph/table/reader/row/item_display_masks_spec.rb +29 -0
  184. data/spec/exlibris/aleph/table/reader/row/patron_circulation_policies_spec.rb +115 -0
  185. data/spec/exlibris/aleph/table/reader/row/patron_statuses_spec.rb +29 -0
  186. data/spec/exlibris/aleph/table/reader/row/sub_libraries_spec.rb +41 -0
  187. data/spec/exlibris/aleph/table/reader/sub_libraries_spec.rb +36 -0
  188. data/spec/exlibris/aleph/table/sub_libraries_spec.rb +19 -0
  189. data/spec/exlibris/aleph/tables_manager_spec.rb +120 -0
  190. data/spec/exlibris/aleph_spec.rb +5 -0
  191. data/spec/spec_helper.rb +27 -0
  192. data/spec/support/mnt/aleph_tab/adm50/tab/filename +0 -0
  193. data/{test → spec/support}/mnt/aleph_tab/alephe/tab/tab_sub_library.eng +0 -0
  194. data/{test → spec/support}/mnt/aleph_tab/nyu50/tab/pc_tab_exp_field_extended.eng +0 -0
  195. data/{test/mnt/aleph_tab → spec/support/mnt/aleph_tab/nyu50/tab}/tab15.eng +2 -0
  196. data/{test → spec/support}/mnt/aleph_tab/nyu50/tab/tab16 +0 -0
  197. data/{test → spec/support}/mnt/aleph_tab/nyu50/tab/tab31 +0 -0
  198. data/{test → spec/support}/mnt/aleph_tab/nyu50/tab/tab37 +0 -0
  199. data/{test → spec/support}/mnt/aleph_tab/nyu50/tab/tab40.eng +0 -0
  200. data/{test → spec/support}/mnt/aleph_tab/nyu50/tab/tab_www_item_desc.eng +0 -0
  201. data/{test → spec/support}/mnt/aleph_tab/nyu51/tab/pc_tab_exp_field_extended.eng +0 -0
  202. data/{test → spec/support}/mnt/aleph_tab/nyu51/tab/tab15.eng +0 -0
  203. data/{test → spec/support}/mnt/aleph_tab/nyu51/tab/tab16 +0 -0
  204. data/{test → spec/support}/mnt/aleph_tab/nyu51/tab/tab31 +0 -0
  205. data/{test → spec/support}/mnt/aleph_tab/nyu51/tab/tab37 +0 -0
  206. data/{test → spec/support}/mnt/aleph_tab/nyu51/tab/tab40.eng +0 -0
  207. data/{test → spec/support}/mnt/aleph_tab/nyu51/tab/tab_www_item_desc.eng +0 -0
  208. data/spec/vcr_cassettes/patron.yml +1443 -0
  209. data/spec/vcr_cassettes/record.yml +763 -0
  210. metadata +351 -165
  211. data/lib/exlibris/aleph/abstract.rb +0 -28
  212. data/lib/exlibris/aleph/rest/base.rb +0 -56
  213. data/lib/exlibris/aleph/tab_helper.rb +0 -303
  214. data/lib/exlibris/aleph/tabs_parser/base.rb +0 -49
  215. data/lib/exlibris/aleph/tabs_parser/pc_tab_exp_field_extended.rb +0 -20
  216. data/lib/exlibris/aleph/tabs_parser/sub_library.rb +0 -32
  217. data/lib/exlibris/aleph/tabs_parser/tab15_by_item_process_status.rb +0 -33
  218. data/lib/exlibris/aleph/tabs_parser/tab15_by_item_status.rb +0 -33
  219. data/lib/exlibris/aleph/tabs_parser/tab31.rb +0 -39
  220. data/lib/exlibris/aleph/tabs_parser/tab37.rb +0 -63
  221. data/lib/exlibris/aleph/tabs_parser/tab40.rb +0 -20
  222. data/lib/exlibris/aleph/tabs_parser/tab_sub_library.rb +0 -21
  223. data/lib/exlibris/aleph/tabs_parser/tab_www_item_desc.rb +0 -20
  224. data/lib/exlibris/aleph/task_installer.rb +0 -25
  225. data/lib/exlibris/aleph/write_attributes.rb +0 -38
  226. data/lib/exlibris/aleph/xml_util.rb +0 -50
  227. data/lib/exlibris/aleph/xservice/bor_auth.rb +0 -47
  228. data/lib/tasks/exlibris-aleph_tasks.rake +0 -48
  229. data/test/config/aleph/alephe/sub_libraries.yml +0 -801
  230. data/test/config/aleph/nyu50/collections.yml +0 -1168
  231. data/test/config/aleph/nyu50/item_permissions_by_item_process_status.yml +0 -61876
  232. data/test/config/aleph/nyu50/item_permissions_by_item_status.yml +0 -17319
  233. data/test/config/aleph/nyu50/items.yml +0 -617
  234. data/test/config/aleph/nyu50/patron_permissions.yml +0 -19720
  235. data/test/config/aleph/nyu50/patrons.yml +0 -249
  236. data/test/config/aleph/nyu50/pickup_locations.yml +0 -2910
  237. data/test/config/aleph/nyu51/collections.yml +0 -41
  238. data/test/config/aleph/nyu51/item_permissions_by_item_process_status.yml +0 -7689
  239. data/test/config/aleph/nyu51/item_permissions_by_item_status.yml +0 -430
  240. data/test/config/aleph/nyu51/items.yml +0 -617
  241. data/test/config/aleph/nyu51/patron_permissions.yml +0 -6588
  242. data/test/config/aleph/nyu51/patrons.yml +0 -237
  243. data/test/config/aleph/nyu51/pickup_locations.yml +0 -456
  244. data/test/config_test.rb +0 -24
  245. data/test/exlibris-aleph_test.rb +0 -7
  246. data/test/mnt/aleph_tab/nyu50/tab/tab15.eng +0 -4742
  247. data/test/mnt/aleph_tab/pc_tab_exp_field_extended.eng +0 -158
  248. data/test/mnt/aleph_tab/tab16 +0 -3792
  249. data/test/mnt/aleph_tab/tab31 +0 -998
  250. data/test/mnt/aleph_tab/tab37 +0 -405
  251. data/test/mnt/aleph_tab/tab40.eng +0 -335
  252. data/test/mnt/aleph_tab/tab_sub_library.eng +0 -378
  253. data/test/mnt/aleph_tab/tab_www_item_desc.eng +0 -208
  254. data/test/patron_test.rb +0 -98
  255. data/test/record_benchmarks.rb +0 -26
  256. data/test/record_test.rb +0 -64
  257. data/test/support/config.yml +0 -2
  258. data/test/tab_helper_benchmarks.rb +0 -53
  259. data/test/tab_helper_test.rb +0 -192
  260. data/test/test_helper.rb +0 -46
  261. data/test/vcr_cassettes/bor_auth.yml +0 -42
  262. data/test/vcr_cassettes/patron.yml +0 -142
  263. data/test/vcr_cassettes/patron_address.yml +0 -45
  264. data/test/vcr_cassettes/patron_bogus_url.yml +0 -731
  265. data/test/vcr_cassettes/patron_error.yml +0 -93
  266. data/test/vcr_cassettes/record.yml +0 -146
  267. data/test/vcr_cassettes/record_bogus_url.yml +0 -690
  268. data/test/xservice/bor_auth_test.rb +0 -28
@@ -0,0 +1,98 @@
1
+ require 'spec_helper'
2
+ module Exlibris
3
+ module Aleph
4
+ module API
5
+ module Reader
6
+ class Patron
7
+ describe Record do
8
+ let(:root) do
9
+ {
10
+ 'record' => {
11
+ 'info' => [
12
+ {
13
+ 'type' => 'Items',
14
+ 'href' => 'http://aleph.library.nyu.edu:1891/rest-dlf/patron/BOR_ID/record/NYU01000980206/items'
15
+ },
16
+ {
17
+ 'note' => {
18
+ '__content__' => 'Unable to create title level request. No available items associated with record.',
19
+ 'type' => 'error'
20
+ },
21
+ 'type' => 'HoldRequest',
22
+ 'href' => 'http://aleph.library.nyu.edu:1891/rest-dlf/patron/BOR_ID/record/NYU01000980206/holds',
23
+ 'allowed' => 'N'
24
+ },
25
+ {
26
+ 'note' => {
27
+ '__content__' => 'This record does not have holdings which can be booked',
28
+ 'type' => "error"
29
+ },
30
+ 'type' => 'ShortLoan',
31
+ 'href' => 'http://aleph.library.nyu.edu:1891/rest-dlf/patron/BOR_ID/record/NYU01000980206/shortLoan',
32
+ 'allowed' => 'N'
33
+ },
34
+ {
35
+ 'note' => {
36
+ '__content__' => 'Patron does not have a valid ILL Unit',
37
+ 'type' => 'error'
38
+ },
39
+ 'type' => 'ILL',
40
+ 'href' => 'http://aleph.library.nyu.edu:1891/rest-dlf/patron/BOR_ID/record/NYU01000980206/ill',
41
+ 'allowed' => 'N'
42
+ },
43
+ {
44
+ 'bib_library' => 'NYU01',
45
+ 'bib_doc_number' => '000980206',
46
+ 'note' => {
47
+ '__content__' => 'This record does not have holdings which can be booked',
48
+ "type" => "error"
49
+ }, 'type' => 'BookingRequest',
50
+ 'allowed' => 'N'
51
+ },
52
+ {
53
+ 'bib_library' => 'NYU01',
54
+ 'bib_doc_number' => '000980206',
55
+ 'note' => {
56
+ '__content__' => 'You are not permitted to use this function.',
57
+ 'type' => 'error'
58
+ },
59
+ 'type' => 'AcquisitionRequest',
60
+ 'allowed' => 'N'
61
+ }
62
+ ]
63
+ }
64
+ }
65
+ end
66
+
67
+ subject(:record) { Record.new(root) }
68
+ it { should be_a Record }
69
+ describe '#root' do
70
+ subject { record.root }
71
+ it { should eq root }
72
+ end
73
+ describe '#hold_request' do
74
+ subject { record.hold_request }
75
+ it { should eq 'N' }
76
+ end
77
+ describe '#short_loan' do
78
+ subject { record.short_loan }
79
+ it { should eq 'N' }
80
+ end
81
+ describe '#ill' do
82
+ subject { record.ill }
83
+ it { should eq 'N' }
84
+ end
85
+ describe '#booking_request' do
86
+ subject { record.booking_request }
87
+ it { should eq 'N' }
88
+ end
89
+ describe '#acquisition_request' do
90
+ subject { record.acquisition_request }
91
+ it { should eq 'N' }
92
+ end
93
+ end
94
+ end
95
+ end
96
+ end
97
+ end
98
+ end
@@ -0,0 +1,57 @@
1
+ require 'spec_helper'
2
+ module Exlibris
3
+ module Aleph
4
+ module API
5
+ module Reader
6
+ class Patron
7
+ describe Address do
8
+ let(:root) do
9
+ {
10
+ 'reply_text' => 'ok',
11
+ 'reply_code' => '0000',
12
+ 'registration' => {
13
+ 'translate_change_active_library' => 'NYU50',
14
+ 'institution' => {
15
+ 'inst_name' => 'NYU50',
16
+ 'z305_bor_status_code' => '55',
17
+ 'z305_bor_status' => 'NYU Master.s Student',
18
+ 'z305_bor_type' => nil,
19
+ 'z305_expiry_date' => '20141031',
20
+ 'code' => 'NYU50'
21
+ }
22
+ }
23
+ }
24
+ end
25
+
26
+ subject(:status) { Status.new(root) }
27
+ it { should be_a Status }
28
+ describe '#root' do
29
+ subject { status.root }
30
+ it { should eq root }
31
+ end
32
+ describe '#code' do
33
+ subject { status.code }
34
+ it { should eq '55' }
35
+ end
36
+ describe '#display' do
37
+ subject { status.display }
38
+ it { should eq 'NYU Master.s Student' }
39
+ end
40
+ describe '#type' do
41
+ subject { status.type }
42
+ it { should be_nil }
43
+ end
44
+ describe '#expiration_date' do
45
+ subject { status.expiration_date }
46
+ it { should eq '20141031' }
47
+ end
48
+ describe '#institution_code' do
49
+ subject { status.institution_code }
50
+ it { should eq 'NYU50' }
51
+ end
52
+ end
53
+ end
54
+ end
55
+ end
56
+ end
57
+ end
@@ -0,0 +1,28 @@
1
+ require 'spec_helper'
2
+ module Exlibris
3
+ module Aleph
4
+ module API
5
+ module Reader
6
+ describe Patron do
7
+ let(:root) do
8
+ {
9
+ 'patron' => {
10
+ 'translate_change_active_library' => 'NYU50'
11
+ }
12
+ }
13
+ end
14
+ subject(:patron) { Patron.new(root) }
15
+ it { should be_a Patron }
16
+ describe '#root' do
17
+ subject { patron.root }
18
+ it { should eq root }
19
+ end
20
+ describe '#admin_library_code' do
21
+ subject { patron.admin_library_code }
22
+ it { should eql 'NYU50'}
23
+ end
24
+ end
25
+ end
26
+ end
27
+ end
28
+ end
@@ -0,0 +1,178 @@
1
+ require 'spec_helper'
2
+ module Exlibris
3
+ module Aleph
4
+ module API
5
+ module Reader
6
+ class Record
7
+ describe Item do
8
+ let(:root) do
9
+ {
10
+ 'reply_text' => 'ok',
11
+ 'reply_code' => '0000',
12
+ 'item' => {
13
+ 'z30_sub_library_code' => 'TNSGI',
14
+ 'z30_item_process_status_code' => 'DM',
15
+ 'z30_item_status_code' => '04',
16
+ 'z30_collection_code' => 'SPCLP',
17
+ 'queue' => '1 request(s) of 1 items.',
18
+ 'z30' => {
19
+ 'translate_change_active_library' => 'NYU50',
20
+ 'z30_doc_number' => '001951476',
21
+ 'z30_item_sequence' => ' 122.0',
22
+ 'z30_barcode' => '31207026692263',
23
+ 'z30_sub_library' => 'New School University Center',
24
+ 'z30_material' => 'Issue (bound)',
25
+ 'z30_item_status' => 'Ask at Reference',
26
+ 'z30_open_date' => '20110510',
27
+ 'z30_update_date' => '20140317',
28
+ 'z30_cataloger' => 'LOORC',
29
+ 'z30_date_last_return' => '20140206',
30
+ 'z30_hour_last_return' => '1151',
31
+ 'z30_ip_last_return' => '149.31.214.133',
32
+ 'z30_no_loans' => '001',
33
+ 'z30_alpha' => 'L',
34
+ 'z30_collection' => 'SpecCol Periodicals',
35
+ 'z30_call_no_type' => nil,
36
+ 'z30_call_no' => 'Non-circulating',
37
+ 'z30_call_no_key' => '$$mnon-circulating',
38
+ 'z30_call_no_2_type' => nil,
39
+ 'z30_call_no_2' => nil,
40
+ 'z30_call_no_2_key' => nil,
41
+ 'z30_description' => 'no.1(1991:spring)',
42
+ 'z30_note_opac' => 'Spring',
43
+ 'z30_note_circulation' => nil,
44
+ 'z30_note_internal' => 'Numbered limited edition /1000.',
45
+ 'z30_order_number' => nil,
46
+ 'z30_inventory_number' => nil,
47
+ 'z30_inventory_number_date' => '00000000',
48
+ 'z30_last_shelf_report_date' => '00000000',
49
+ 'z30_price' => nil, 'z30_shelf_report_number' => nil,
50
+ 'z30_on_shelf_date' => '00000000',
51
+ 'z30_on_shelf_seq' => '000000',
52
+ 'z30_doc_number_2' => '000000000',
53
+ 'z30_schedule_sequence_2' => '00000',
54
+ 'z30_copy_sequence_2' => '00000',
55
+ 'z30_vendor_code' => nil,
56
+ 'z30_invoice_number' => nil,
57
+ 'z30_line_number' => '00000',
58
+ 'z30_pages' => nil,
59
+ 'z30_issue_date' => '20110510',
60
+ 'z30_expected_arrival_date' => '20110510',
61
+ 'z30_arrival_date' => '20110510',
62
+ 'z30_item_statistic' => nil,
63
+ 'z30_item_process_status' => 'Depository mediated',
64
+ 'z30_copy_id' => nil,
65
+ 'z30_hol_doc_number' => '000036718',
66
+ 'z30_temp_location' => 'No',
67
+ 'z30_enumeration_a' => '1',
68
+ 'z30_enumeration_b' => nil,
69
+ 'z30_enumeration_c' => nil,
70
+ 'z30_enumeration_d' => nil,
71
+ 'z30_enumeration_e' => nil,
72
+ 'z30_enumeration_f' => nil,
73
+ 'z30_enumeration_g' => nil,
74
+ 'z30_enumeration_h' => nil,
75
+ 'z30_chronological_i' => '1991',
76
+ 'z30_chronological_j' => '21',
77
+ 'z30_chronological_k' => nil,
78
+ 'z30_chronological_l' => nil,
79
+ 'z30_chronological_m' => nil,
80
+ 'z30_supp_index_o' => nil,
81
+ 'z30_85x_type' => '3',
82
+ 'z30_depository_id' => 'TNSRS',
83
+ 'z30_linking_number' => '000000001',
84
+ 'z30_gap_indicator' => nil,
85
+ 'z30_maintenance_count' => '000',
86
+ 'z30_process_status_date' => '20140317'
87
+ },
88
+ 'z13' => {
89
+ 'translate_change_active_library' => 'NYU50',
90
+ 'z13_doc_number' => '001951476',
91
+ 'z13_year' => '1991',
92
+ 'z13_open_date' => '20080618',
93
+ 'z13_update_date' => '20140328',
94
+ 'z13_call_no_key' => nil,
95
+ 'z13_call_no_code' => 'LOC',
96
+ 'z13_call_no' => nil,
97
+ 'z13_author_code' => nil,
98
+ 'z13_author' => nil,
99
+ 'z13_title_code' => '24500',
100
+ 'z13_title' => 'Visionaire.',
101
+ 'z13_imprint_code' => '260',
102
+ 'z13_imprint' => '[New York] : Visionaire Publishing, c1991-',
103
+ 'z13_isbn_issn_code' => nil,
104
+ 'z13_isbn_issn' => nil
105
+ },
106
+ 'status' => 'On Hold'
107
+ }
108
+ }
109
+ end
110
+
111
+ subject(:item) { Item.new(root) }
112
+ it { should be_a Item }
113
+ describe '#root' do
114
+ subject { item.root }
115
+ it { should eq root }
116
+ end
117
+ describe '#admin_library_code' do
118
+ subject { item.admin_library_code }
119
+ it { should eq 'NYU50' }
120
+ end
121
+ describe '#sub_library_code' do
122
+ subject { item.sub_library_code }
123
+ it { should eq 'TNSGI' }
124
+ end
125
+ describe '#sub_library_display' do
126
+ subject { item.sub_library_display }
127
+ it { should eq 'New School University Center' }
128
+ end
129
+ describe '#collection_code' do
130
+ subject { item.collection_code }
131
+ it { should eq 'SPCLP' }
132
+ end
133
+ describe '#collection_display' do
134
+ subject { item.collection_display }
135
+ it { should eq 'SpecCol Periodicals' }
136
+ end
137
+ describe '#status_code' do
138
+ subject { item.status_code }
139
+ it { should eq '04' }
140
+ end
141
+ describe '#status_display' do
142
+ subject { item.status_display }
143
+ it { should eq 'Ask at Reference' }
144
+ end
145
+ describe '#processing_status_code' do
146
+ subject { item.processing_status_code }
147
+ it { should eq 'DM' }
148
+ end
149
+ describe '#processing_status_display' do
150
+ subject { item.processing_status_display }
151
+ it { should eq 'Depository mediated' }
152
+ end
153
+ describe '#classification' do
154
+ subject { item.classification }
155
+ it { should eq 'Non-circulating' }
156
+ end
157
+ describe '#description' do
158
+ subject { item.description }
159
+ it { should eq 'no.1(1991:spring)' }
160
+ end
161
+ describe '#circulation_status_value' do
162
+ subject { item.circulation_status_value }
163
+ it { should eq 'On Hold' }
164
+ end
165
+ describe '#opac_note' do
166
+ subject { item.opac_note }
167
+ it { should eq 'Spring' }
168
+ end
169
+ describe '#queue' do
170
+ subject { item.queue }
171
+ it { should eq '1 request(s) of 1 items.' }
172
+ end
173
+ end
174
+ end
175
+ end
176
+ end
177
+ end
178
+ end
@@ -0,0 +1,95 @@
1
+ require 'spec_helper'
2
+ module Exlibris
3
+ module Aleph
4
+ describe Collection do
5
+ let(:code) { 'MAIN' }
6
+ let(:display) { 'Main Collection' }
7
+ let(:admin_library) { AdminLibrary.new('ADM50') }
8
+ let(:sub_library) { SubLibrary.new('SUB', 'Sub Library', admin_library) }
9
+ subject(:collection) { Collection.new(code, display, sub_library) }
10
+ it { should be_a Collection }
11
+ describe '#code' do
12
+ subject { collection.code }
13
+ it { should eq code }
14
+ end
15
+ describe '#display' do
16
+ subject { collection.display }
17
+ it { should eq display }
18
+ end
19
+ describe '#sub_library' do
20
+ subject { collection.sub_library }
21
+ it { should be_a SubLibrary }
22
+ it { should eq sub_library }
23
+ end
24
+ describe '#to_s' do
25
+ subject { collection.to_s }
26
+ it { should eq display }
27
+ end
28
+ describe '#==' do
29
+ subject { collection == other_object }
30
+ context 'when the other object is an Exlibris::Aleph::Collection' do
31
+ context 'and the code is the same' do
32
+ let(:other_object) { Collection.new(code, display, sub_library) }
33
+ it { should be_true }
34
+ end
35
+ context 'but the code is different' do
36
+ let(:other_object) { Collection.new('MOBI', 'Mobile', sub_library) }
37
+ it { should be_false }
38
+ end
39
+ end
40
+ context 'when the other object is not an Exlibris::Aleph::Collection' do
41
+ let(:other_object) { "string" }
42
+ it { should be_false }
43
+ end
44
+ end
45
+ describe '#===' do
46
+ subject { collection === other_object }
47
+ context 'when the other object is an Exlibris::Aleph::Collection' do
48
+ context 'and the code is the same' do
49
+ let(:other_object) { Collection.new(code, display, sub_library) }
50
+ it { should be_true }
51
+ end
52
+ context 'but the code is different' do
53
+ let(:other_object) { Collection.new('MOBI', 'Mobile', sub_library) }
54
+ it { should be_false }
55
+ end
56
+ end
57
+ context 'when the other object is not an Exlibris::Aleph::Collection' do
58
+ let(:other_object) { "string" }
59
+ it { should be_false }
60
+ end
61
+ end
62
+ describe '#eql?' do
63
+ subject { collection.eql?(other_object) }
64
+ context 'when the other object is an Exlibris::Aleph::Collection' do
65
+ context 'and the code is the same' do
66
+ let(:other_object) { Collection.new(code, display, sub_library) }
67
+ it { should be_true }
68
+ end
69
+ context 'but the code is different' do
70
+ let(:other_object) { Collection.new('MOBI', 'Mobile', sub_library) }
71
+ it { should be_false }
72
+ end
73
+ end
74
+ context 'when the other object is not an Exlibris::Aleph::Collection' do
75
+ let(:other_object) { "string" }
76
+ it { should be_false }
77
+ end
78
+ end
79
+ context 'when initialized without a "sub_library" argument' do
80
+ subject { Collection.new(code, display) }
81
+ it 'should raise an ArgumentError' do
82
+ expect { subject }.to raise_error ArgumentError
83
+ end
84
+ end
85
+ context 'when initialized with a "sub_library" argument' do
86
+ context 'but the "sub_library" argument is not an SubLibrary' do
87
+ let(:sub_library) { "invalid" }
88
+ it 'should raise an ArgumentError' do
89
+ expect { subject }.to raise_error ArgumentError
90
+ end
91
+ end
92
+ end
93
+ end
94
+ end
95
+ end