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,27 @@
1
+ require 'spec_helper'
2
+ module Exlibris
3
+ module Aleph
4
+ module Table
5
+ module Reader
6
+ describe ItemDisplayMasks do
7
+ let(:admin_library) { AdminLibrary.new('NYU50') }
8
+ subject(:item_display_masks) { ItemDisplayMasks.new(admin_library) }
9
+ describe '#filename' do
10
+ subject { item_display_masks.filename }
11
+ it { should eq 'tab_www_item_desc.eng' }
12
+ end
13
+ describe '#all' do
14
+ subject { item_display_masks.all }
15
+ it { should be_an Array }
16
+ it { should_not be_empty }
17
+ it 'should contain ItemDisplayMask' do
18
+ subject.each do |item_display_mask|
19
+ expect(item_display_mask).to be_a Aleph::Item::DisplayMask
20
+ end
21
+ end
22
+ end
23
+ end
24
+ end
25
+ end
26
+ end
27
+ end
@@ -0,0 +1,32 @@
1
+ require 'spec_helper'
2
+ module Exlibris
3
+ module Aleph
4
+ module Table
5
+ module Reader
6
+ module Matcher
7
+ describe Base do
8
+ let(:regexp) { /t(est)/ }
9
+ let(:string) { 'test' }
10
+ subject(:base) { Base.new(regexp, string) }
11
+ describe '#regexp' do
12
+ subject { base.regexp }
13
+ it { should be_a Regexp }
14
+ end
15
+ describe '#match_data' do
16
+ subject { base.match_data }
17
+ it { should be_a MatchData }
18
+ end
19
+ describe '#matched_data' do
20
+ subject { base.matched_data }
21
+ it { should be_an Array }
22
+ end
23
+ describe '#matches?' do
24
+ subject { base.matches? }
25
+ it { should be_true }
26
+ end
27
+ end
28
+ end
29
+ end
30
+ end
31
+ end
32
+ end
@@ -0,0 +1,39 @@
1
+ require 'spec_helper'
2
+ module Exlibris
3
+ module Aleph
4
+ module Table
5
+ module Reader
6
+ module Matcher
7
+ describe Collections do
8
+ let(:string) { 'MAIN BOBST L Main Collection' }
9
+ subject(:collections) { Collections.new(string) }
10
+ describe Collections::REGEXP do
11
+ subject { Collections::REGEXP }
12
+ it { should eq /^(.{5})\s(.{5})\s(L)\s(.+)/ }
13
+ end
14
+ describe '#regexp' do
15
+ subject { collections.regexp }
16
+ it { should be_a Regexp }
17
+ it { should eq /^(.{5})\s(.{5})\s(L)\s(.+)/ }
18
+ end
19
+ describe '#match_data' do
20
+ subject { collections.match_data }
21
+ it { should be_a MatchData }
22
+ end
23
+ describe '#matches?' do
24
+ subject { collections.matches? }
25
+ it { should be_true }
26
+ end
27
+ describe '#matched_data' do
28
+ subject { collections.matched_data }
29
+ it { should be_an Array }
30
+ it 'should have 4 matches' do
31
+ expect(subject.size).to eq 4
32
+ end
33
+ end
34
+ end
35
+ end
36
+ end
37
+ end
38
+ end
39
+ end
@@ -0,0 +1,39 @@
1
+ require 'spec_helper'
2
+ module Exlibris
3
+ module Aleph
4
+ module Table
5
+ module Reader
6
+ module Matcher
7
+ describe ItemCirculationPolicies do
8
+ let(:string) { 'BOBST ## DP L Depository Y Y C N Y Y N Y N 00 N A' }
9
+ subject(:items) { ItemCirculationPolicies.new(string) }
10
+ describe ItemCirculationPolicies::REGEXP do
11
+ subject { ItemCirculationPolicies::REGEXP }
12
+ it { should eq /^(.{5})\s([0-9#]{2})\s([A-Z#]{2})\s(L)\s(.{30})\s([YN])\s([YN])\s([YNCT])\s([YN])\s([YN])\s([YN])\s([YN])\s([YN])\s([YN])\s([0-9]{2})\s([YNC])\s([AOC])/ }
13
+ end
14
+ describe '#regexp' do
15
+ subject { items.regexp }
16
+ it { should be_a Regexp }
17
+ it { should eq /^(.{5})\s([0-9#]{2})\s([A-Z#]{2})\s(L)\s(.{30})\s([YN])\s([YN])\s([YNCT])\s([YN])\s([YN])\s([YN])\s([YN])\s([YN])\s([YN])\s([0-9]{2})\s([YNC])\s([AOC])/ }
18
+ end
19
+ describe '#match_data' do
20
+ subject { items.match_data }
21
+ it { should be_a MatchData }
22
+ end
23
+ describe '#matches?' do
24
+ subject { items.matches? }
25
+ it { should be_true }
26
+ end
27
+ describe '#matched_data' do
28
+ subject { items.matched_data }
29
+ it { should be_an Array }
30
+ it 'should have 17 matches' do
31
+ expect(subject.size).to eq 17
32
+ end
33
+ end
34
+ end
35
+ end
36
+ end
37
+ end
38
+ end
39
+ end
@@ -0,0 +1,40 @@
1
+ require 'spec_helper'
2
+ module Exlibris
3
+ module Aleph
4
+ module Table
5
+ module Reader
6
+ module Matcher
7
+ describe ItemDisplayMasks do
8
+ let(:string) { 'ITEM-STATUS Lost/Claimed Request ILL' }
9
+ subject(:item_display_masks) { ItemDisplayMasks.new(string) }
10
+ it { should be_a ItemDisplayMasks }
11
+ describe ItemDisplayMasks::REGEXP do
12
+ subject { ItemDisplayMasks::REGEXP }
13
+ it { should eq /^ITEM-STATUS \s(.{80})\s(.*)$/ }
14
+ end
15
+ describe '#regexp' do
16
+ subject { item_display_masks.regexp }
17
+ it { should be_a Regexp }
18
+ it { should eq /^ITEM-STATUS \s(.{80})\s(.*)$/ }
19
+ end
20
+ describe '#match_data' do
21
+ subject { item_display_masks.match_data }
22
+ it { should be_a MatchData }
23
+ end
24
+ describe '#matches?' do
25
+ subject { item_display_masks.matches? }
26
+ it { should be_true }
27
+ end
28
+ describe '#matched_data' do
29
+ subject { item_display_masks.matched_data }
30
+ it { should be_an Array }
31
+ it 'should have 2 matches' do
32
+ expect(subject.size).to eq 2
33
+ end
34
+ end
35
+ end
36
+ end
37
+ end
38
+ end
39
+ end
40
+ end
@@ -0,0 +1,40 @@
1
+ require 'spec_helper'
2
+ module Exlibris
3
+ module Aleph
4
+ module Table
5
+ module Reader
6
+ module Matcher
7
+ describe PatronCirculationPolicies do
8
+ let(:string) { 'BOBST 03 Y N Y N Y Y Y N F A 20130831 0000000500 N N N 20 N N N N' }
9
+ subject(:patron_circulation_policies) { PatronCirculationPolicies.new(string) }
10
+ it { should be_a PatronCirculationPolicies }
11
+ describe PatronCirculationPolicies::REGEXP do
12
+ subject { PatronCirculationPolicies::REGEXP }
13
+ it { should eq /^(.{5})\s([0-9#]{2})\s([YN])\s([YN])\s([YN])\s([YN])\s([YN])\s([YN])\s([YN])\s([YN])\s([CF])\s([+A])\s([DMY\s])\s([0-9]{8})\s([0-9]{10})\s([YN])\s([YN])\s([YN])\s([0-9]{2})\s([YN])\s([YN])\s([YN])\s([YN])$/ }
14
+ end
15
+ describe '#regexp' do
16
+ subject { patron_circulation_policies.regexp }
17
+ it { should be_a Regexp }
18
+ it { should eq /^(.{5})\s([0-9#]{2})\s([YN])\s([YN])\s([YN])\s([YN])\s([YN])\s([YN])\s([YN])\s([YN])\s([CF])\s([+A])\s([DMY\s])\s([0-9]{8})\s([0-9]{10})\s([YN])\s([YN])\s([YN])\s([0-9]{2})\s([YN])\s([YN])\s([YN])\s([YN])$/ }
19
+ end
20
+ describe '#match_data' do
21
+ subject { patron_circulation_policies.match_data }
22
+ it { should be_a MatchData }
23
+ end
24
+ describe '#matches?' do
25
+ subject { patron_circulation_policies.matches? }
26
+ it { should be_true }
27
+ end
28
+ describe '#matched_data' do
29
+ subject { patron_circulation_policies.matched_data }
30
+ it { should be_an Array }
31
+ it 'should have 23 matches' do
32
+ expect(subject.size).to eq 23
33
+ end
34
+ end
35
+ end
36
+ end
37
+ end
38
+ end
39
+ end
40
+ end
@@ -0,0 +1,40 @@
1
+ require 'spec_helper'
2
+ module Exlibris
3
+ module Aleph
4
+ module Table
5
+ module Reader
6
+ module Matcher
7
+ describe PatronStatuses do
8
+ let(:string) { 'BOR-STATUS ##### L Palmer Faculty 03' }
9
+ subject(:patron_statuses) { PatronStatuses.new(string) }
10
+ it { should be_a PatronStatuses }
11
+ describe PatronStatuses::REGEXP do
12
+ subject { PatronStatuses::REGEXP }
13
+ it { should eq /^BOR-STATUS\s{10}\s.{5}\sL\s(.{50})\s(.*)$/ }
14
+ end
15
+ describe '#regexp' do
16
+ subject { patron_statuses.regexp }
17
+ it { should be_a Regexp }
18
+ it { should eq /^BOR-STATUS\s{10}\s.{5}\sL\s(.{50})\s(.*)$/ }
19
+ end
20
+ describe '#match_data' do
21
+ subject { patron_statuses.match_data }
22
+ it { should be_a MatchData }
23
+ end
24
+ describe '#matches?' do
25
+ subject { patron_statuses.matches? }
26
+ it { should be_true }
27
+ end
28
+ describe '#matched_data' do
29
+ subject { patron_statuses.matched_data }
30
+ it { should be_an Array }
31
+ it 'should have 2 matches' do
32
+ expect(subject.size).to eq 2
33
+ end
34
+ end
35
+ end
36
+ end
37
+ end
38
+ end
39
+ end
40
+ end
@@ -0,0 +1,40 @@
1
+ require 'spec_helper'
2
+ module Exlibris
3
+ module Aleph
4
+ module Table
5
+ module Reader
6
+ module Matcher
7
+ describe SubLibraries do
8
+ let(:string) { 'BOBST 1 NYU50 L NYU Bobst BOBST BOBST BOBST BOBST NYU50 ALEPH' }
9
+ subject(:sub_libraries) { SubLibraries.new(string) }
10
+ it { should be_a SubLibraries }
11
+ describe SubLibraries::REGEXP do
12
+ subject { SubLibraries::REGEXP }
13
+ it { should eq /^(.{5})\s([1-6]{1})\s(.{5})\s([L,H,A,R,S]{1})\s(.{1,30})/ }
14
+ end
15
+ describe '#regexp' do
16
+ subject { sub_libraries.regexp }
17
+ it { should be_a Regexp }
18
+ it { should eq /^(.{5})\s([1-6]{1})\s(.{5})\s([L,H,A,R,S]{1})\s(.{1,30})/ }
19
+ end
20
+ describe '#match_data' do
21
+ subject { sub_libraries.match_data }
22
+ it { should be_a MatchData }
23
+ end
24
+ describe '#matches?' do
25
+ subject { sub_libraries.matches? }
26
+ it { should be_true }
27
+ end
28
+ describe '#matched_data' do
29
+ subject { sub_libraries.matched_data }
30
+ it { should be_an Array }
31
+ it 'should have 5 matches' do
32
+ expect(subject.size).to eq 5
33
+ end
34
+ end
35
+ end
36
+ end
37
+ end
38
+ end
39
+ end
40
+ end
@@ -0,0 +1,27 @@
1
+ require 'spec_helper'
2
+ module Exlibris
3
+ module Aleph
4
+ module Table
5
+ module Reader
6
+ describe PatronCirculationPolicies do
7
+ let(:admin_library) { AdminLibrary.new('NYU50') }
8
+ subject(:patron_circulation_policies) { PatronCirculationPolicies.new(admin_library) }
9
+ describe '#filename' do
10
+ subject { patron_circulation_policies.filename }
11
+ it { should eq 'tab31' }
12
+ end
13
+ describe '#all' do
14
+ subject { patron_circulation_policies.all }
15
+ it { should be_an Array }
16
+ it { should_not be_empty }
17
+ it 'should contain Patron::CirculationPolicy elements' do
18
+ subject.each do |patron_circulation_policy|
19
+ expect(patron_circulation_policy).to be_a Aleph::Patron::CirculationPolicy
20
+ end
21
+ end
22
+ end
23
+ end
24
+ end
25
+ end
26
+ end
27
+ end
@@ -0,0 +1,27 @@
1
+ require 'spec_helper'
2
+ module Exlibris
3
+ module Aleph
4
+ module Table
5
+ module Reader
6
+ describe PatronStatuses do
7
+ let(:admin_library) { AdminLibrary.new('NYU50') }
8
+ subject(:patron_statuses) { PatronStatuses.new(admin_library) }
9
+ describe '#filename' do
10
+ subject { patron_statuses.filename }
11
+ it { should eq 'pc_tab_exp_field_extended.eng' }
12
+ end
13
+ describe '#all' do
14
+ subject { patron_statuses.all }
15
+ it { should be_an Array }
16
+ it { should_not be_empty }
17
+ it 'should contain Patron::Status' do
18
+ subject.each do |patron_status|
19
+ expect(patron_status).to be_a Aleph::Patron::Status
20
+ end
21
+ end
22
+ end
23
+ end
24
+ end
25
+ end
26
+ end
27
+ end
@@ -0,0 +1,20 @@
1
+ require 'spec_helper'
2
+ module Exlibris
3
+ module Aleph
4
+ module Table
5
+ module Reader
6
+ module Row
7
+ describe Base do
8
+ let(:data) { ['value1', 'value2'] }
9
+ subject(:base) { Base.new(data) }
10
+ it { should be_a Base }
11
+ describe '#data' do
12
+ subject { base.data }
13
+ it { should eq data }
14
+ end
15
+ end
16
+ end
17
+ end
18
+ end
19
+ end
20
+ end
@@ -0,0 +1,37 @@
1
+ require 'spec_helper'
2
+ module Exlibris
3
+ module Aleph
4
+ module Table
5
+ module Reader
6
+ module Row
7
+ describe Collections do
8
+ let(:data) { ['MAIN', 'BOBST', 'L', 'Main Collection'] }
9
+ subject(:collections) { Collections.new(data) }
10
+ it { should be_a Base }
11
+ it { should be_a Collections }
12
+ describe '#data' do
13
+ subject { collections.data }
14
+ it { should eq data }
15
+ end
16
+ describe '#code' do
17
+ subject { collections.code }
18
+ it { should eq 'MAIN' }
19
+ end
20
+ describe '#sub_library_code' do
21
+ subject { collections.sub_library_code }
22
+ it { should eq 'BOBST' }
23
+ end
24
+ describe '#alpha' do
25
+ subject { collections.alpha }
26
+ it { should eq 'L' }
27
+ end
28
+ describe '#display' do
29
+ subject { collections.display }
30
+ it { should eq 'Main Collection' }
31
+ end
32
+ end
33
+ end
34
+ end
35
+ end
36
+ end
37
+ end
@@ -0,0 +1,89 @@
1
+ require 'spec_helper'
2
+ module Exlibris
3
+ module Aleph
4
+ module Table
5
+ module Reader
6
+ module Row
7
+ describe ItemCirculationPolicies do
8
+ let(:data) { ["BOBST", "##", "DP", "L", "Depository ", "Y", "Y", "C", "N", "Y", "Y", "N", "Y", "N", "00", "N", "A"] }
9
+ subject(:item_circulation_policies) { ItemCirculationPolicies.new(data) }
10
+ it { should be_a Base }
11
+ it { should be_a ItemCirculationPolicies }
12
+ describe '#data' do
13
+ subject { item_circulation_policies.data }
14
+ it { should eq data }
15
+ end
16
+ describe '#sub_library_code' do
17
+ subject { item_circulation_policies.sub_library_code }
18
+ it { should eq 'BOBST' }
19
+ end
20
+ describe '#item_status_code' do
21
+ subject { item_circulation_policies.item_status_code }
22
+ it { should eq '##' }
23
+ end
24
+ describe '#item_processing_status_code' do
25
+ subject { item_circulation_policies.item_processing_status_code }
26
+ it { should eq 'DP' }
27
+ end
28
+ describe '#alpha' do
29
+ subject { item_circulation_policies.alpha }
30
+ it { should eq 'L' }
31
+ end
32
+ describe '#display' do
33
+ subject { item_circulation_policies.display }
34
+ it { should eq 'Depository' }
35
+ end
36
+ describe '#loanable' do
37
+ subject { item_circulation_policies.loanable }
38
+ it { should eq 'Y' }
39
+ end
40
+ describe '#renewable' do
41
+ subject { item_circulation_policies.renewable }
42
+ it { should eq 'Y' }
43
+ end
44
+ describe '#requestable' do
45
+ subject { item_circulation_policies.requestable }
46
+ it { should eq 'C' }
47
+ end
48
+ describe '#photocopyable' do
49
+ subject { item_circulation_policies.photocopyable }
50
+ it { should eq 'N' }
51
+ end
52
+ describe '#displayable' do
53
+ subject { item_circulation_policies.displayable }
54
+ it { should eq 'Y' }
55
+ end
56
+ describe '#specific_item' do
57
+ subject { item_circulation_policies.specific_item }
58
+ it { should eq 'Y' }
59
+ end
60
+ describe '#limit_hold' do
61
+ subject { item_circulation_policies.limit_hold }
62
+ it { should eq 'N' }
63
+ end
64
+ describe '#recallable' do
65
+ subject { item_circulation_policies.recallable }
66
+ it { should eq 'Y' }
67
+ end
68
+ describe '#rush_recallable' do
69
+ subject { item_circulation_policies.rush_recallable }
70
+ it { should eq 'N' }
71
+ end
72
+ describe '#reloaning_limit' do
73
+ subject { item_circulation_policies.reloaning_limit }
74
+ it { should eq '00' }
75
+ end
76
+ describe '#bookable' do
77
+ subject { item_circulation_policies.bookable }
78
+ it { should eq 'N' }
79
+ end
80
+ describe '#booking_hours' do
81
+ subject { item_circulation_policies.booking_hours }
82
+ it { should eq 'A' }
83
+ end
84
+ end
85
+ end
86
+ end
87
+ end
88
+ end
89
+ end