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,29 @@
1
+ require 'spec_helper'
2
+ module Exlibris
3
+ module Aleph
4
+ module Table
5
+ module Reader
6
+ module Row
7
+ describe ItemDisplayMasks do
8
+ let(:data) { ['Lost/Claimed ', 'Request ILL'] }
9
+ subject(:item_display_masks) { ItemDisplayMasks.new(data) }
10
+ it { should be_a Base }
11
+ it { should be_a ItemDisplayMasks }
12
+ describe '#data' do
13
+ subject { item_display_masks.data }
14
+ it { should eq data }
15
+ end
16
+ describe '#display' do
17
+ subject { item_display_masks.display }
18
+ it { should eq 'Lost/Claimed' }
19
+ end
20
+ describe '#mask' do
21
+ subject { item_display_masks.mask }
22
+ it { should eq 'Request ILL' }
23
+ end
24
+ end
25
+ end
26
+ end
27
+ end
28
+ end
29
+ end
@@ -0,0 +1,115 @@
1
+ require 'spec_helper'
2
+ module Exlibris
3
+ module Aleph
4
+ module Table
5
+ module Reader
6
+ module Row
7
+ describe PatronCirculationPolicies do
8
+ let(:data) { ['BOBST', '03', 'Y', 'N', 'Y', 'N', 'Y', 'Y', 'Y', 'N',
9
+ 'F', 'A', ' ', '20130831', '0000000500', 'N', 'N', 'N', '20', 'N',
10
+ 'N', 'N', 'N'] }
11
+ subject(:patron_circulation_policies) { PatronCirculationPolicies.new(data) }
12
+ it { should be_a Base }
13
+ it { should be_a PatronCirculationPolicies }
14
+ describe '#data' do
15
+ subject { patron_circulation_policies.data }
16
+ it { should eq data }
17
+ end
18
+ describe '#sub_library_code' do
19
+ subject { patron_circulation_policies.sub_library_code }
20
+ it { should eq 'BOBST' }
21
+ end
22
+ describe '#patron_status_code' do
23
+ subject { patron_circulation_policies.patron_status_code }
24
+ it { should eq '03' }
25
+ end
26
+ describe '#borrow' do
27
+ subject { patron_circulation_policies.borrow }
28
+ it { should eq 'Y' }
29
+ end
30
+ describe '#photocopy' do
31
+ subject { patron_circulation_policies.photocopy }
32
+ it { should eq 'N' }
33
+ end
34
+ describe '#override' do
35
+ subject { patron_circulation_policies.override }
36
+ it { should eq 'Y' }
37
+ end
38
+ describe '#request_multiple' do
39
+ subject { patron_circulation_policies.request_multiple }
40
+ it { should eq 'N' }
41
+ end
42
+ describe '#check_loan' do
43
+ subject { patron_circulation_policies.check_loan }
44
+ it { should eq 'Y' }
45
+ end
46
+ describe '#request' do
47
+ subject { patron_circulation_policies.request }
48
+ it { should eq 'Y' }
49
+ end
50
+ describe '#renew' do
51
+ subject { patron_circulation_policies.renew }
52
+ it { should eq 'Y' }
53
+ end
54
+ describe '#ignore_late_return' do
55
+ subject { patron_circulation_policies.ignore_late_return }
56
+ it { should eq 'N' }
57
+ end
58
+ describe '#photocopy_charge' do
59
+ subject { patron_circulation_policies.photocopy_charge }
60
+ it { should eq 'F' }
61
+ end
62
+ describe '#expiration_date_operator' do
63
+ subject { patron_circulation_policies.expiration_date_operator }
64
+ it { should eq 'A' }
65
+ end
66
+ describe '#expiration_date_operator_type' do
67
+ subject { patron_circulation_policies.expiration_date_operator_type }
68
+ it { should eq '' }
69
+ end
70
+ describe '#expiration_date_parameter' do
71
+ subject { patron_circulation_policies.expiration_date_parameter }
72
+ it { should eq '20130831' }
73
+ end
74
+ describe '#cash_overspend_limit' do
75
+ subject { patron_circulation_policies.cash_overspend_limit }
76
+ it { should eq '0000000500' }
77
+ end
78
+ describe '#request_on_shelf' do
79
+ subject { patron_circulation_policies.request_on_shelf }
80
+ it { should eq 'N' }
81
+ end
82
+ describe '#loan_display' do
83
+ subject { patron_circulation_policies.loan_display }
84
+ it { should eq 'N' }
85
+ end
86
+ describe '#reading_room_permission' do
87
+ subject { patron_circulation_policies.reading_room_permission }
88
+ it { should eq 'N' }
89
+ end
90
+ describe '#default_hold_priority' do
91
+ subject { patron_circulation_policies.default_hold_priority }
92
+ it { should eq '20' }
93
+ end
94
+ describe '#book' do
95
+ subject { patron_circulation_policies.book }
96
+ it { should eq 'N' }
97
+ end
98
+ describe '#ignore_closing_hours_for_booking' do
99
+ subject { patron_circulation_policies.ignore_closing_hours_for_booking }
100
+ it { should eq 'N' }
101
+ end
102
+ describe '#automatically_create_aleph_record' do
103
+ subject { patron_circulation_policies.automatically_create_aleph_record }
104
+ it { should eq 'N' }
105
+ end
106
+ describe '#rush_cataloging' do
107
+ subject { patron_circulation_policies.rush_cataloging }
108
+ it { should eq 'N' }
109
+ end
110
+ end
111
+ end
112
+ end
113
+ end
114
+ end
115
+ end
@@ -0,0 +1,29 @@
1
+ require 'spec_helper'
2
+ module Exlibris
3
+ module Aleph
4
+ module Table
5
+ module Reader
6
+ module Row
7
+ describe PatronStatuses do
8
+ let(:data) { ['Palmer Faculty ', '03'] }
9
+ subject(:patron_statuses) { PatronStatuses.new(data) }
10
+ it { should be_a Base }
11
+ it { should be_a PatronStatuses }
12
+ describe '#data' do
13
+ subject { patron_statuses.data }
14
+ it { should eq data }
15
+ end
16
+ describe '#code' do
17
+ subject { patron_statuses.code }
18
+ it { should eq '03' }
19
+ end
20
+ describe '#display' do
21
+ subject { patron_statuses.display }
22
+ it { should eq 'Palmer Faculty' }
23
+ end
24
+ end
25
+ end
26
+ end
27
+ end
28
+ end
29
+ end
@@ -0,0 +1,41 @@
1
+ require 'spec_helper'
2
+ module Exlibris
3
+ module Aleph
4
+ module Table
5
+ module Reader
6
+ module Row
7
+ describe SubLibraries do
8
+ let(:data) { ['BOBST', '1', 'NYU50', 'L', 'NYU Bobst '] }
9
+ subject(:sub_libraries) { SubLibraries.new(data) }
10
+ it { should be_a Base }
11
+ it { should be_a SubLibraries }
12
+ describe '#data' do
13
+ subject { sub_libraries.data }
14
+ it { should eq data }
15
+ end
16
+ describe '#code' do
17
+ subject { sub_libraries.code }
18
+ it { should eq 'BOBST' }
19
+ end
20
+ describe '#type' do
21
+ subject { sub_libraries.type }
22
+ it { should eq '1' }
23
+ end
24
+ describe '#admin_library_code' do
25
+ subject { sub_libraries.admin_library_code }
26
+ it { should eq 'NYU50' }
27
+ end
28
+ describe '#alpha' do
29
+ subject { sub_libraries.alpha }
30
+ it { should eq 'L' }
31
+ end
32
+ describe '#display' do
33
+ subject { sub_libraries.display }
34
+ it { should eq 'NYU Bobst' }
35
+ end
36
+ end
37
+ end
38
+ end
39
+ end
40
+ end
41
+ end
@@ -0,0 +1,36 @@
1
+ require 'spec_helper'
2
+ module Exlibris
3
+ module Aleph
4
+ module Table
5
+ module Reader
6
+ describe SubLibraries do
7
+ let(:irrelevant_codes) { Config.irrelevant_sub_libraries }
8
+ subject(:sub_libraries) { SubLibraries.new }
9
+ describe '#admin_library' do
10
+ subject { sub_libraries.admin_library }
11
+ it { should eq AdminLibrary.new('alephe') }
12
+ end
13
+ describe '#filename' do
14
+ subject { sub_libraries.filename }
15
+ it { should eq 'tab_sub_library.eng' }
16
+ end
17
+ describe '#all' do
18
+ subject { sub_libraries.all }
19
+ it { should be_an Array }
20
+ it { should_not be_empty }
21
+ it 'should contain SubLibraries' do
22
+ subject.each do |sub_library|
23
+ expect(sub_library).to be_a SubLibrary
24
+ end
25
+ end
26
+ it 'should not include irrelevant codes' do
27
+ subject.find do |sub_library|
28
+ expect(irrelevant_codes).not_to include(sub_library.code)
29
+ end
30
+ end
31
+ end
32
+ end
33
+ end
34
+ end
35
+ end
36
+ end
@@ -0,0 +1,19 @@
1
+ require 'spec_helper'
2
+ module Exlibris
3
+ module Aleph
4
+ module Table
5
+ describe SubLibraries do
6
+ subject(:sub_libraries) { SubLibraries.new }
7
+ describe '#all' do
8
+ subject { sub_libraries.all }
9
+ it { should be_an Array }
10
+ it { should_not be_empty }
11
+ end
12
+ describe '#each' do
13
+ subject { sub_libraries.each }
14
+ it { should be_an Enumerable }
15
+ end
16
+ end
17
+ end
18
+ end
19
+ end
@@ -0,0 +1,120 @@
1
+ require 'spec_helper'
2
+ module Exlibris
3
+ module Aleph
4
+ describe TablesManager do
5
+ subject(:tables_manager) { TablesManager.instance }
6
+ it { should be_a TablesManager }
7
+ describe TablesManager::TIME_TO_LIVE do
8
+ subject { TablesManager::TIME_TO_LIVE }
9
+ it { should eq 86400 }
10
+ end
11
+ describe '#equal?' do
12
+ let(:other_instance) { TablesManager.instance }
13
+ subject { tables_manager.equal?(other_instance) }
14
+ it { should be_true }
15
+ end
16
+ describe '#expired?' do
17
+ subject { tables_manager.expired? }
18
+ it { should be_false }
19
+ context 'when the table has been in use for more than a day' do
20
+ it 'should be true' do
21
+ expect(tables_manager.expired?).to be_false
22
+ Timecop.freeze(Time.now + 86401) do
23
+ expect(subject).to be_true
24
+ end
25
+ end
26
+ end
27
+ end
28
+ describe '#sub_libraries' do
29
+ subject { tables_manager.sub_libraries }
30
+ it { should be_a Table::SubLibraries }
31
+ context 'when the tables manager is not expired' do
32
+ it { should be tables_manager.sub_libraries }
33
+ end
34
+ context 'when the tables manager is expired' do
35
+ it 'should not be the same object' do
36
+ subject
37
+ Timecop.freeze(Time.now + 86401) do
38
+ expect(subject).not_to be tables_manager.sub_libraries
39
+ end
40
+ end
41
+ end
42
+ end
43
+ describe '#collections' do
44
+ subject { tables_manager.collections }
45
+ it { should be_a Table::Collections }
46
+ context 'when the tables manager is not expired' do
47
+ it { should be tables_manager.collections }
48
+ end
49
+ context 'when the tables manager is expired' do
50
+ it 'should not be the same object' do
51
+ subject
52
+ Timecop.freeze(Time.now + 86401) do
53
+ expect(subject).not_to be tables_manager.collections
54
+ end
55
+ end
56
+ end
57
+ end
58
+ describe '#patron_statuses' do
59
+ subject { tables_manager.patron_statuses }
60
+ it { should be_a Table::Patron::Statuses }
61
+ context 'when the tables manager is not expired' do
62
+ it { should be tables_manager.patron_statuses }
63
+ end
64
+ context 'when the tables manager is expired' do
65
+ it 'should not be the same object' do
66
+ subject
67
+ Timecop.freeze(Time.now + 86401) do
68
+ expect(subject).not_to be tables_manager.patron_statuses
69
+ end
70
+ end
71
+ end
72
+ end
73
+ describe '#patron_circulation_policies' do
74
+ subject { tables_manager.patron_circulation_policies }
75
+ it { should be_a Table::Patron::CirculationPolicies }
76
+ context 'when the tables manager is not expired' do
77
+ it { should be tables_manager.patron_circulation_policies }
78
+ end
79
+ context 'when the tables manager is expired' do
80
+ it 'should not be the same object' do
81
+ subject
82
+ Timecop.freeze(Time.now + 86401) do
83
+ expect(subject).not_to be tables_manager.patron_circulation_policies
84
+ end
85
+ end
86
+ end
87
+ end
88
+ describe '#item_circulation_policies' do
89
+ subject { tables_manager.item_circulation_policies }
90
+ it { should be_a Table::Item::CirculationPolicies }
91
+ context 'when the tables manager is not expired' do
92
+ it { should be tables_manager.item_circulation_policies }
93
+ end
94
+ context 'when the tables manager is expired' do
95
+ it 'should not be the same object' do
96
+ subject
97
+ Timecop.freeze(Time.now + 86401) do
98
+ expect(subject).not_to be tables_manager.item_circulation_policies
99
+ end
100
+ end
101
+ end
102
+ end
103
+ describe '#item_display_masks' do
104
+ subject { tables_manager.item_display_masks }
105
+ it { should be_a Table::Item::DisplayMasks }
106
+ context 'when the tables manager is not expired' do
107
+ it { should be tables_manager.item_display_masks }
108
+ end
109
+ context 'when the tables manager is expired' do
110
+ it 'should not be the same object' do
111
+ subject
112
+ Timecop.freeze(Time.now + 86401) do
113
+ expect(subject).not_to be tables_manager.item_display_masks
114
+ end
115
+ end
116
+ end
117
+ end
118
+ end
119
+ end
120
+ end
@@ -0,0 +1,5 @@
1
+ require 'spec_helper'
2
+ module Exlibris
3
+ describe Aleph do
4
+ end
5
+ end
@@ -0,0 +1,27 @@
1
+ $:.unshift File.expand_path('..', __FILE__)
2
+ $:.unshift File.expand_path('../../lib', __FILE__)
3
+ require 'coveralls'
4
+ Coveralls.wear!
5
+ require 'rspec'
6
+ require 'vcr'
7
+ require 'timecop'
8
+ require 'exlibris-aleph'
9
+
10
+ require 'pry'
11
+
12
+ VCR.configure do |config|
13
+ config.hook_into :faraday
14
+ config.cassette_library_dir = 'spec/vcr_cassettes'
15
+ config.configure_rspec_metadata!
16
+ config.filter_sensitive_data("library.edu") { "library.nyu.edu" }
17
+ config.filter_sensitive_data('BOR_ID') { ENV['BOR_ID'] }
18
+ config.filter_sensitive_data('BOR_ID_WITHOUT_HOLD_PERMISSION') do
19
+ ENV['BOR_ID_WITHOUT_HOLD_PERMISSION']
20
+ end
21
+ end
22
+
23
+ Exlibris::Aleph.configure do |config|
24
+ config.base_url = 'http://aleph.library.nyu.edu'
25
+ config.adms = ['NYU50', 'NYU51']
26
+ config.table_path = "#{File.dirname(__FILE__)}/support/mnt/aleph_tab"
27
+ end
@@ -574,6 +574,7 @@ BOBST ## AC L AFC-Post cataloging Y Y Y N Y Y N Y N 00 N A
574
574
  BOBST ## AO L NYU AFC Offsite mediated avail Y Y N N Y Y N N N 00 N A
575
575
  BOBST ## AP L NYU AFC Offsite mediated proce Y Y N N Y Y N N N 00 N A
576
576
  BOBST ## AR L Received N N N N Y Y N N N 00 N A
577
+ BOBST 01 BD L At Bindery N N C N Y Y N N N 00 N A
577
578
  BOBST ## BD L At Bindery N N C N Y Y N N N 00 N A
578
579
  BOBST ## BL L Billed as lost N N N Y Y Y N N N 00 N A
579
580
  BOBST ## BO L Bound Y N N N Y Y N N N 00 N A
@@ -4740,3 +4741,4 @@ TNSGI ## ## L IS and IPS not used by TNSGI N N N N N N N N N 00 N A
4740
4741
  TNSKE ## ## L IS and IPS not used by TNSKE N N N N N N N N N 00 N A
4741
4742
  TNSSC ## ## L IS and IPS not used by TNSSC N N N N N N N N N 00 N A
4742
4743
  TNSOS ## ## L IS and IPS not used by TNSOS N N N N N N N N N 00 N A
4744
+ BOBST ## ## L IS and IPS not used by TNSOS N N N N N N N N N 00 N A