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,45 @@
1
+ require 'spec_helper'
2
+ module Exlibris
3
+ module Aleph
4
+ module API
5
+ module Client
6
+ class Patron
7
+ describe Record, vcr: {cassette_name: 'patron', record: :new_episodes} do
8
+ let(:patron_id) { 'BOR_ID' }
9
+ let(:id) { 'NYU01000980206' }
10
+ subject(:record) { Record.new(patron_id, id) }
11
+ it { should be_a Record }
12
+ describe '#patron_id' do
13
+ subject { record.patron_id }
14
+ it { should eq patron_id }
15
+ end
16
+ describe '#id' do
17
+ subject { record.id }
18
+ it { should eq id }
19
+ end
20
+ describe '#reply_code' do
21
+ subject { record.reply_code }
22
+ it { should eq '0000' }
23
+ end
24
+ describe '#reply_text' do
25
+ subject { record.reply_text }
26
+ it { should eq 'ok' }
27
+ end
28
+ describe '#error?' do
29
+ subject { record.error? }
30
+ it { should be_false }
31
+ end
32
+ describe '#to_h' do
33
+ subject { record.to_h }
34
+ it { should be_a Hash }
35
+ end
36
+ describe '#to_xml' do
37
+ subject { record.to_xml }
38
+ it { should be_a String }
39
+ end
40
+ end
41
+ end
42
+ end
43
+ end
44
+ end
45
+ end
@@ -0,0 +1,40 @@
1
+ require 'spec_helper'
2
+ module Exlibris
3
+ module Aleph
4
+ module API
5
+ module Client
6
+ class Patron
7
+ describe Status, vcr: {cassette_name: 'patron', record: :new_episodes} do
8
+ let(:patron_id) { 'BOR_ID' }
9
+ subject(:status) { Status.new(patron_id) }
10
+ it { should be_a Status }
11
+ describe '#patron_id' do
12
+ subject { status.patron_id }
13
+ it { should eq patron_id }
14
+ end
15
+ describe '#reply_code' do
16
+ subject { status.reply_code }
17
+ it { should eq '0000' }
18
+ end
19
+ describe '#reply_text' do
20
+ subject { status.reply_text }
21
+ it { should eq 'ok' }
22
+ end
23
+ describe '#error?' do
24
+ subject { status.error? }
25
+ it { should be_false }
26
+ end
27
+ describe '#to_h' do
28
+ subject { status.to_h }
29
+ it { should be_a Hash }
30
+ end
31
+ describe '#to_xml' do
32
+ subject { status.to_xml }
33
+ it { should be_a String }
34
+ end
35
+ end
36
+ end
37
+ end
38
+ end
39
+ end
40
+ end
@@ -0,0 +1,38 @@
1
+ require 'spec_helper'
2
+ module Exlibris
3
+ module Aleph
4
+ module API
5
+ module Client
6
+ describe Patron, vcr: {cassette_name: 'patron'} do
7
+ let(:id) { 'BOR_ID' }
8
+ subject(:patron) { Patron.new(id) }
9
+ it { should be_a Patron }
10
+ describe '#id' do
11
+ subject { patron.id }
12
+ it { should eq id }
13
+ end
14
+ describe '#reply_code' do
15
+ subject { patron.reply_code }
16
+ it { should eq '0000' }
17
+ end
18
+ describe '#reply_text' do
19
+ subject { patron.reply_text }
20
+ it { should eq 'ok' }
21
+ end
22
+ describe '#error?' do
23
+ subject { patron.error? }
24
+ it { should be_false }
25
+ end
26
+ describe '#to_h' do
27
+ subject { patron.to_h }
28
+ it { should be_a Hash }
29
+ end
30
+ describe '#to_xml' do
31
+ subject { patron.to_xml }
32
+ it { should be_a String }
33
+ end
34
+ end
35
+ end
36
+ end
37
+ end
38
+ end
@@ -0,0 +1,46 @@
1
+ require 'spec_helper'
2
+ module Exlibris
3
+ module Aleph
4
+ module API
5
+ module Client
6
+ class Record
7
+ describe Filters, vcr: {cassette_name: 'record', record: :new_episodes} do
8
+ let(:record_id) { 'NYU01000980206' }
9
+ let(:view) { 'full' }
10
+ let(:query) { { view: view } }
11
+ subject(:filters) { Filters.new(record_id, query) }
12
+ it { should be_a Filters }
13
+ describe '#id' do
14
+ subject { filters.record_id }
15
+ it { should eq record_id }
16
+ end
17
+ describe '#reply_code' do
18
+ subject { filters.reply_code }
19
+ it { should eq '0000' }
20
+ end
21
+ describe '#reply_text' do
22
+ subject { filters.reply_text }
23
+ it { should eq 'ok' }
24
+ end
25
+ describe '#error?' do
26
+ subject { filters.error? }
27
+ it { should be_false }
28
+ end
29
+ describe '#to_h' do
30
+ subject { filters.to_h }
31
+ it { should be_a Hash }
32
+ end
33
+ describe '#to_xml' do
34
+ subject { filters.to_xml }
35
+ it { should be_a String }
36
+ end
37
+ context 'when initialized without a "query" argument' do
38
+ subject { Filters.new(record_id) }
39
+ it { should be_a Filters }
40
+ end
41
+ end
42
+ end
43
+ end
44
+ end
45
+ end
46
+ end
@@ -0,0 +1,41 @@
1
+ require 'spec_helper'
2
+ module Exlibris
3
+ module Aleph
4
+ module API
5
+ module Client
6
+ class Record
7
+ describe Holding, vcr: {cassette_name: 'record', record: :new_episodes} do
8
+ let(:record_id) { 'NYU01000980206' }
9
+ let(:id) { 'NYU60002945614' }
10
+ subject(:holding) { Holding.new(record_id, id) }
11
+ it { should be_a Holding }
12
+ describe '#id' do
13
+ subject { holding.record_id }
14
+ it { should eq record_id }
15
+ end
16
+ describe '#reply_code' do
17
+ subject { holding.reply_code }
18
+ it { should eq '0000' }
19
+ end
20
+ describe '#reply_text' do
21
+ subject { holding.reply_text }
22
+ it { should eq 'ok' }
23
+ end
24
+ describe '#error?' do
25
+ subject { holding.error? }
26
+ it { should be_false }
27
+ end
28
+ describe '#to_h' do
29
+ subject { holding.to_h }
30
+ it { should be_a Hash }
31
+ end
32
+ describe '#to_xml' do
33
+ subject { holding.to_xml }
34
+ it { should be_a String }
35
+ end
36
+ end
37
+ end
38
+ end
39
+ end
40
+ end
41
+ end
@@ -0,0 +1,46 @@
1
+ require 'spec_helper'
2
+ module Exlibris
3
+ module Aleph
4
+ module API
5
+ module Client
6
+ class Record
7
+ describe Holdings, vcr: {cassette_name: 'record', record: :new_episodes} do
8
+ let(:record_id) { 'NYU01000980206' }
9
+ let(:view) { 'full' }
10
+ let(:query) { { view: view } }
11
+ subject(:holdings) { Holdings.new(record_id, query) }
12
+ it { should be_a Holdings }
13
+ describe '#id' do
14
+ subject { holdings.record_id }
15
+ it { should eq record_id }
16
+ end
17
+ describe '#reply_code' do
18
+ subject { holdings.reply_code }
19
+ it { should eq '0000' }
20
+ end
21
+ describe '#reply_text' do
22
+ subject { holdings.reply_text }
23
+ it { should eq 'ok' }
24
+ end
25
+ describe '#error?' do
26
+ subject { holdings.error? }
27
+ it { should be_false }
28
+ end
29
+ describe '#to_h' do
30
+ subject { holdings.to_h }
31
+ it { should be_a Hash }
32
+ end
33
+ describe '#to_xml' do
34
+ subject { holdings.to_xml }
35
+ it { should be_a String }
36
+ end
37
+ context 'when initialized without a "query" argument' do
38
+ subject { Holdings.new(record_id) }
39
+ it { should be_a Holdings }
40
+ end
41
+ end
42
+ end
43
+ end
44
+ end
45
+ end
46
+ end
@@ -0,0 +1,41 @@
1
+ require 'spec_helper'
2
+ module Exlibris
3
+ module Aleph
4
+ module API
5
+ module Client
6
+ class Record
7
+ describe Item, vcr: {cassette_name: 'record', record: :new_episodes} do
8
+ let(:record_id) { 'NYU01000980206' }
9
+ let(:id) { 'NYU50001951476001220' }
10
+ subject(:item) { Item.new(record_id, id) }
11
+ it { should be_a Item }
12
+ describe '#id' do
13
+ subject { item.record_id }
14
+ it { should eq record_id }
15
+ end
16
+ describe '#reply_code' do
17
+ subject { item.reply_code }
18
+ it { should eq '0000' }
19
+ end
20
+ describe '#reply_text' do
21
+ subject { item.reply_text }
22
+ it { should eq 'ok' }
23
+ end
24
+ describe '#error?' do
25
+ subject { item.error? }
26
+ it { should be_false }
27
+ end
28
+ describe '#to_h' do
29
+ subject { item.to_h }
30
+ it { should be_a Hash }
31
+ end
32
+ describe '#to_xml' do
33
+ subject { item.to_xml }
34
+ it { should be_a String }
35
+ end
36
+ end
37
+ end
38
+ end
39
+ end
40
+ end
41
+ end
@@ -0,0 +1,46 @@
1
+ require 'spec_helper'
2
+ module Exlibris
3
+ module Aleph
4
+ module API
5
+ module Client
6
+ class Record
7
+ describe Items, vcr: {cassette_name: 'record', record: :new_episodes} do
8
+ let(:record_id) { 'NYU01000980206' }
9
+ let(:view) { 'full' }
10
+ let(:query) { { view: view } }
11
+ subject(:items) { Items.new(record_id, query) }
12
+ it { should be_a Items }
13
+ describe '#id' do
14
+ subject { items.record_id }
15
+ it { should eq record_id }
16
+ end
17
+ describe '#reply_code' do
18
+ subject { items.reply_code }
19
+ it { should eq '0000' }
20
+ end
21
+ describe '#reply_text' do
22
+ subject { items.reply_text }
23
+ it { should eq 'ok' }
24
+ end
25
+ describe '#error?' do
26
+ subject { items.error? }
27
+ it { should be_false }
28
+ end
29
+ describe '#to_h' do
30
+ subject { items.to_h }
31
+ it { should be_a Hash }
32
+ end
33
+ describe '#to_xml' do
34
+ subject { items.to_xml }
35
+ it { should be_a String }
36
+ end
37
+ context 'when initialized without a "query" argument' do
38
+ subject { Items.new(record_id) }
39
+ it { should be_a Items }
40
+ end
41
+ end
42
+ end
43
+ end
44
+ end
45
+ end
46
+ end
@@ -0,0 +1,43 @@
1
+ require 'spec_helper'
2
+ module Exlibris
3
+ module Aleph
4
+ module API
5
+ module Client
6
+ describe Record, vcr: {cassette_name: 'record'} do
7
+ let(:id) { 'NYU01000980206' }
8
+ let(:query) { {view: 'full'} }
9
+ subject(:record) { Record.new(id, query) }
10
+ it { should be_a Record }
11
+ describe '#id' do
12
+ subject { record.id }
13
+ it { should eq id }
14
+ end
15
+ describe '#reply_code' do
16
+ subject { record.reply_code }
17
+ it { should eq '0000' }
18
+ end
19
+ describe '#reply_text' do
20
+ subject { record.reply_text }
21
+ it { should eq 'ok' }
22
+ end
23
+ describe '#error?' do
24
+ subject { record.error? }
25
+ it { should be_false }
26
+ end
27
+ describe '#to_h' do
28
+ subject { record.to_h }
29
+ it { should be_a Hash }
30
+ end
31
+ describe '#to_xml' do
32
+ subject { record.to_xml }
33
+ it { should be_a String }
34
+ end
35
+ context 'when initialized without a "query" argument' do
36
+ subject { Record.new(id) }
37
+ it { should be_a Record }
38
+ end
39
+ end
40
+ end
41
+ end
42
+ end
43
+ end
@@ -0,0 +1,18 @@
1
+ require 'spec_helper'
2
+ module Exlibris
3
+ module Aleph
4
+ module API
5
+ module Reader
6
+ describe Base do
7
+ let(:root) { [1, 2] }
8
+ subject(:base) { Base.new(root) }
9
+ it { should be_a Base }
10
+ describe '#root' do
11
+ subject { base.root }
12
+ it { should eq root }
13
+ end
14
+ end
15
+ end
16
+ end
17
+ end
18
+ end
@@ -0,0 +1,151 @@
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
+ 'address_information' => {
11
+ 'z304_address_1' => {
12
+ '__content__' => 'SURNAME,GIVEN NAME',
13
+ 'usage' => 'Mandatory',
14
+ 'max_len' => '50'
15
+ },
16
+ 'z304_address_2' => {
17
+ '__content__' => '123 ADDRESS, #APT',
18
+ 'usage' => 'Optional',
19
+ 'max_len' => '50'
20
+ },
21
+ 'z304_address_3' => {
22
+ '__content__' => 'BROOKLYN',
23
+ 'usage' => 'Optional',
24
+ 'max_len' => '50'
25
+ },
26
+ 'z304_address_4' => {
27
+ '__content__' => 'NY',
28
+ 'usage' => 'Optional',
29
+ 'max_len' => '50'
30
+ },
31
+ 'z304_address_5' => {
32
+ '__content__' => 'NY',
33
+ 'usage' => 'Optional',
34
+ 'max_len' => '50'
35
+ },
36
+ 'z304_date_from' => {
37
+ '__content__' => '20140211',
38
+ 'usage' => 'Mandatory'
39
+ },
40
+ 'z304_date_to' => {
41
+ '__content__' => '20200101',
42
+ 'usage' => 'Mandatory'
43
+ },
44
+ 'z304_zip' => {
45
+ '__content__' => '11215',
46
+ 'usage' => 'Optional',
47
+ 'max_len' => '9'
48
+ },
49
+ 'z304_telephone_1' => {
50
+ 'usage' => 'Optional',
51
+ 'max_len' => '30'
52
+ },
53
+ 'z304_telephone_2' => {
54
+ 'usage' => 'Optional',
55
+ 'max_len' => '30'
56
+ },
57
+ 'z304_telephone_3' => {
58
+ 'usage' => 'Optional',
59
+ 'max_len' => '30'
60
+ },
61
+ 'z304_telephone_4' => {
62
+ 'usage' => 'Optional',
63
+ 'max_len' => '30'
64
+ },
65
+ 'z304_sms_number' => {
66
+ 'usage' => 'Optional',
67
+ 'max_len' => '30'
68
+ },
69
+ 'z303_want_sms' => {
70
+ '__content__' => 'N',
71
+ 'usage' => 'Optional'
72
+ },
73
+ 'z303_plain_html' => {
74
+ '__content__' => 'Email Body Only',
75
+ 'usage' => 'Optional',
76
+ 'code' => 'P'
77
+ },
78
+ 'z304_email_address' => {
79
+ '__content__' => 'bor_id@library.nyu.edu',
80
+ 'usage' => 'Optional',
81
+ 'max_len' => '60'
82
+ },
83
+ 'updateable' => 'Y'
84
+ }
85
+ }
86
+ end
87
+
88
+ subject(:address) { Address.new(root) }
89
+ it { should be_a Address }
90
+ describe '#root' do
91
+ subject { address.root }
92
+ it { should eq root }
93
+ end
94
+ describe '#address1' do
95
+ subject { address.address1 }
96
+ it { should eql 'SURNAME,GIVEN NAME'}
97
+ end
98
+ describe '#address2' do
99
+ subject { address.address2 }
100
+ it { should eql '123 ADDRESS, #APT'}
101
+ end
102
+ describe '#address3' do
103
+ subject { address.address3 }
104
+ it { should eql 'BROOKLYN'}
105
+ end
106
+ describe '#address4' do
107
+ subject { address.address4 }
108
+ it { should eql 'NY'}
109
+ end
110
+ describe '#address5' do
111
+ subject { address.address5 }
112
+ it { should eql 'NY'}
113
+ end
114
+ describe '#telephone1' do
115
+ subject { address.telephone1 }
116
+ it { should be_nil }
117
+ end
118
+ describe '#telephone2' do
119
+ subject { address.telephone2 }
120
+ it { should be_nil }
121
+ end
122
+ describe '#telephone3' do
123
+ subject { address.telephone3 }
124
+ it { should be_nil }
125
+ end
126
+ describe '#telephone4' do
127
+ subject { address.telephone4 }
128
+ it { should be_nil }
129
+ end
130
+ describe '#zip' do
131
+ subject { address.zip }
132
+ it { should eq '11215' }
133
+ end
134
+ describe '#sms_number' do
135
+ subject { address.sms_number }
136
+ it { should be_nil }
137
+ end
138
+ describe '#want_sms' do
139
+ subject { address.want_sms }
140
+ it { should eq 'N' }
141
+ end
142
+ describe '#email' do
143
+ subject { address.email }
144
+ it { should eq 'bor_id@library.nyu.edu' }
145
+ end
146
+ end
147
+ end
148
+ end
149
+ end
150
+ end
151
+ end